资讯详情

机器图像处理技术

文章目录

  • OpenCV介绍
    • Mat类
      • 创建
      • 复制
      • 遍历
  • 基本概念
    • 物理设备
    • 相机光学模型
    • 镜头畸变
    • 采样和量化图像
    • 图像分辨率
    • 图像灰度级
    • 图像的坐标
    • 像素的空间关系
    • 图像的种类
    • 色彩模型
      • CMYK 色彩模型
      • HSV 色彩模型
      • HSV 与 RGB的转换
    • 图像直方图
    • 直方图的作用
      • 图像匹配
      • 判断成像质量
      • 二值化阈值
    • 习题1
    • 习题2
    • 习题3
    • 常用操作
  • 二值化
    • 连通域标记
    • 图像二值化的目的
    • P-tile法
    • 最小误判概率法
    • 大津法(OTSU)法
    • 局部自适应二值化
    • 习题1
    • 习题2
    • 习题3
    • 习题4
  • 图像形态学
    • 绪论
    • 膨胀运算
    • 腐蚀运算
    • 开运算
    • 闭运算
    • 换顶帽和底帽
    • 灰度图的形态处理
    • 习题1
    • 习题2
    • 习题3
  • 空间滤波
    • 图像卷积
    • 均值滤波
    • 中值滤波
    • 边缘检测图像
      • Prewitt算子
      • Sobel算子
      • Laplacian算子
      • canny算子
    • 习题1
    • 习题2
    • 习题3
    • 习题4
  • 图像变换
    • 几何变换
    • 平层变换
    • 比例缩放
    • 旋转和镜像
    • 对称变换
    • 错切变换
    • 复合变换
    • 仿射变换和投影变换
    • 插值算法
      • 最近邻插值法
      • 双线插值法
      • 双三次插值法
    • 练习
  • 图像特征
    • 概论
      • HSV直方图
    • 形状特征
      • Shape Context
    • 霍夫变换
    • 局部特征
      • 角点检测

OpenCV介绍

OpenCV主页:https://opencv.org/

Mat类

matrix类本身是一种可以用来保存图像的矩阵格式

int main() {  cout << "hello opencv!" << endl;  Mat srcImage = imread("test.bmp");  imshow("srcImage", srcImage); ///窗名,图片名  waitKey(0);  return 0; } 

创建

 Mat M1(2,2,CV_8UC3,Scalar(0,0,255);  Mat M2(2,2,CV_8UC3,1);  ///只给第一个通道赋值 

创建了一个名字M1的Mat,尺寸为2,2,类型为8位uchar类型,通道数为3(此)mat每个元素包含三个通道(值),然后用0、0、255赋值每个元素

CV_(位数) (数据类型) (通道数)

Mat M3; M3.create(3,4,CV_8UC3); 

声明了一个3行4列mat对象

复制

Mat srcM(2,2,CV_8UC3,Scalar(0,0,255)) Mat dstM; dstM = srcM; 

新生成的矩阵头,仍然指向矩阵

Mat srcM(2,2,CV_8UC3,Scalar(0,0,255)) Mat dstM; srcM.copyTo(dstM); 

内存中的位置和新矩阵srcM是不一样的

浅复制,修改后值也会随之变化,深度复制不会

遍历

//方法1 int height = image.rows; int width = image.cols * image.channels(); //列数乘以其通道数 for(int j = 0;j < height;j  ) {  uchar* data = image.ptr<uchar>(j);  for(int i = 0;i < width;i  )  {   data[i] = data[i/2];  } } 
//方法2 for (int j = 0; j < M7.rows; j  ) {  for (int i = 0; i < M7.rows; i  )  {   M7.at<Vec3b>(j, i)[0] = j; //取到(j,i)位置上的像素,然后赋值他   M7.at<Vec3b>(j, i)[1] = j 1;   M7.at<Vec3b>(j, i)[2] = j 2;  } } 

基本概念

物理设备

数字图像处理系统包括:

(输入|采样量化|专用处理),(数字图像处理), 图像输出设备(专用处理|D/A转换|输出)

最常见的输入设备就是相机(CCD/CMOS)

,包含的像素越多,画面分辨率也就越高

面阵相机一次拍摄一个区域,视觉检测中绝大部分应用面阵相机

线阵相机一次拍摄一行像素,通过移动以及拼接来获取图像,分辨率高,价格较为昂贵

传感器得到数据后,利用插值算法生成实际的图像

相机的光学模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1IdmJPF9-1645958195344)(C:\Users\AlexMiller\AppData\Roaming\Typora\typora-user-images\image-20220216143214276.png)]

镜头畸变

由于镜头中间部分的放大率和周围的放大率不同而产生的,焦距越短失真程度会越大

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mAqRTXTt-1645958195345)(C:\Users\AlexMiller\AppData\Roaming\Typora\typora-user-images\image-20220216143452275.png)]

图像的采样和量化

数字化坐标值称为采样,数字化幅度值称为量化

图像的分辨率

分辨率 160 * 128 的意思是水平像素数为160个,垂直像素数为128个,像素的数目越多,感应到的图像就越精密

视频图像一般采用 smpte 制定的格式标准,如 1080p,表示垂直方向有 1080条水平扫描线(p代表隔行扫描)

图像的灰度级

最常见的图像为 8位图像,灰度级为 256位

灰度级越多,可以展现的图像细节就越多

图像的坐标

图像原点为图像的左上角,坐标记为 [0,0]

一副 M * N 的图像可以用一个矩阵来表示 KaTeX parse error: Undefined control sequence: \matrix at position 9: \left[ \̲m̲a̲t̲r̲i̲x̲{ f(0,0) & ... …

像素的空间关系

|

中,像素 [x,y] 的 8 - 邻域像素,被认为是和该像素相邻的像素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3vWpZ7qU-1645958195346)(C:\Users\AlexMiller\AppData\Roaming\Typora\typora-user-images\image-20220216150609444.png)]

,像素 [x,y] 的 4 - 邻域像素,被认为是和该像素相邻的像素

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nziGT9sI-1645958195348)(C:\Users\AlexMiller\AppData\Roaming\Typora\typora-user-images\image-20220216150702168.png)]

图像的种类

:像素取值仅为 0 和 1,“0” 代表黑色,"1"代表白色;通常用来表示状态,如区分图像中的前景和背景

:像素取值范围为 [0,255],“0” 代表纯黑,“255” 代表纯白

:RGB格式,采用R(红色)G(绿色)B(蓝色)三种颜色的组合叠加来获得各种颜色

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJItcF1z-1645958195350)(C:\Users\AlexMiller\AppData\Roaming\Typora\typora-user-images\image-20220216151122787.png)]

除了 外,常用的色彩模型还有 (数字图像算法常用),(常用于印刷),(用于图像传输)

色彩模型

CMYK 色彩模型

印刷业通过青©,品(M),黄(Y) 三原色油墨的不同网点面积率的叠印来表现颜色,一般采用青©,品(M),黄(Y),黑(BK) 四色印刷

可以看做是从黑色中减少颜色得到新的颜色,故可称为

是在白色上叠加颜色得到新的颜色,故称为

HSV 色彩模型

(Hue),(Saturation),(Value),常用于图像算法中的色彩分析,对光照具有较强的鲁棒性

:用角度表示,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°;该值表示颜色接近于哪种纯色值

:通常取值范围为 0%~100%,圆锥的中心为0。该值越大表示颜色越饱满,直观的说即颜色深而艳

:亮度,表示颜色的明亮程度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BX6hs3yY-1645958195351)(C:\Users\AlexMiller\AppData\Roaming\Typora\typora-user-images\image-20220216152216655.png)]

HSV 与 RGB的转换

R G B − > H S V RGB -> HSV RGB−>HSV

h = { 0 ° , m a x = m i n 60 ° × g − b m a x − m i n + 0 ° , m a x = r a n d g ≥ b 60 ° × g − b m a x − m i n + 360 ° , m a x = r a n d g < b 60 ° × b − r m a x − m i n + 120 ° , m a x = g 60 ° × r − g m a x − m i n + 240 ° , m a x = b h=\begin{cases} 0°,max=min\\ 60°\times\frac{g-b}{max-min}+0°,max=r & and & g\geq b\\60°\times\frac{g-b}{max-min}+360°,max=r&and&g<b\\60°\times\frac{b-r}{max-min}+120°,max=g\\60°\times\frac{r-g}{max-min}+240°,max=b\end{cases} h=⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​0°,max=min60°×max−ming−b​+0°,max=r60°×max−ming−b​+360°,max=r60°×max−minb−r​+120°,max=g60°×max−minr−g​+240°,max=b​andand​g≥bg<b​

s = { 0 m a x = 0 m a x − m i n m a x = 1 − m i n m a x o t h e r w i s e s=\begin{cases}0&max=0\\ \frac{max-min}{max} = 1-\frac{min}{max}&otherwise\end{cases} s={ 0maxmax−min​=1−maxmin​​max=0otherwise​

v = m a x v=max v=max


H S V − > R G B HSV->RGB HSV−>RGB

h i = ⌊ h 60 ⌋ ( m o d 6 ) h_i=\left\lfloor\frac{h}{60}\right\rfloor(mod\quad6) hi​=⌊60h​⌋(mod6)

f = h 60 − h i f=\frac{h}{60}-h_i f=60h​−hi​

p = v × ( 1 − s ) p=v\times(1-s) p=v×(1−s)

q = v × ( 1 − f × s ) q=v\times(1-f\times s) q=v×(1−f×s)

t = v × ( 1 − ( 1 − f ) × s ) t=v\times(1-(1-f)\times s) t=v×(1−(1−f)×s)

对 于 每 个 颜 色 向 量 ( r , g , b ) 对于每个颜色向量(r,g,b) 对于每个颜色向量(r,g,b)

( r , g , b ) = { ( v , t , p ) , h i = 0 ( q , v , p ) , h i = 1 ( p , v , t ) , h i = 2 ( p , q , v ) , h i = 3 ( t , p , v ) , h i = 4 ( v , p , q ) , h i = 5 (r,g,b)=\begin{cases}(v,t,p),h_i=0\\(q,v,p), h_i=1\\(p,v,t),h_i=2\\(p,q,v),h_i=3\\(t,p,v),h_i=4\\(v,p,q),h_i=5\end{cases} (r,g,b)=⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧​(v,t,p),hi​=0(q,v,p),hi​=1(p,v,t),hi​=2(p,q,v),hi​=3(t,p,v),hi​=4(v,p,q),hi​=5​

图像的直方图

是图像处理中的一个非常重要的工具,被广泛应用

本质是概率分布的图形化,同时直方图也可以用来表示向量

假设有如下的图像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0kphbNDu-1645958195353)(C:\Users\AlexMiller\AppData\Roaming\Typora\typora-user-images\image-20220216155512779.png)]

我们记录每个像素出现的次数 v 0 = 5 v 1 = 12 v 2 = 18 v 3 = 8 v 4 = 1 v 5 = 5 v 6 = 8 v 7 = 5 v_0=5\quad v_1=12\quad v_2=18\quad v_3=8\quad v_4=1\quad v_5=5\quad v_6=8\quad v_7=5 v0​=5v1​=12 标签: e2半导体传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台