如何学习机器视觉?知乎上有个回答:一边学招式(opencv),一边学心法(数字图像处理,计算机视觉算法,机器学习等)。
关于数字图像处理,主要是通过上海交大赵宇明老师和电子科技大学李庆嵘老师的公开课学习的,毕竟之前没有这方面相关的学习背景,一边听老师的公开课,一边看冈萨雷斯的《数字图像处理》,这样理解的更深入一些。
数字图像概念
- 图像的形成,离不开“照射源”和“场景”,我们感兴趣的各类图像都是由“照射源”和形成图像的“场景”元素对光的反射和吸收相结合而产生的。将图像表示成一个二维亮度函数f(x,y),其中(x,y)定义了空间坐标,f(x,y)定义了该点的亮度或灰度,图像可以由两个分量来表征:f(x,y)=i(x,y)r(x,y)
i(x,y)入射分量:表示入射到观察场景的光源总量和,其取值区间为(0,∞)
r(x,y)反射分量:表示场景中物体反射光的总量,其取值范围为(0,1)
- 数字图像:将连续图像在坐标空间XY和性质空间F上都离散化就得到了数字图像,这个离散化的过程就是取样和量化
取样和量化
取样是数字化坐标的过程,量化则是数字化幅度值的过程。用一个二维取样函数对一个连续S(x,y)对一个连续图像f(x,y)取样:
取样后的图像表示为:
取样和量化后的结果得到一个矩阵(M*N),其中每一个点代表一个像素:
M,N要求是正整数,考虑到计算、存储的需要,灰度级通常为2的整数次幂。对于一个大小为M*N,灰度级L=的图片来说,所需的存储空间(byte)。当一幅图像有灰度级时,通常称该图像为k比特图像。(补充一个灰度级的概念:灰度级[0,L-1],l=0为黑色,l=L-1为白色)
空间和灰度级分辨率
- 取样值是决定一幅图像空间分辨率的主要参数,空间分辨率是图像中可辨别的最小细节。
- 线对:假设每隔宽度W画一条宽度为W的垂直线,则一个线对是由一条线(W)和其一个间隔(W)组成,这样线对的宽度为2W,
- 广泛使用的分辨率的意义是在每单位距离可分辨的线对数目,例如,每毫米100线对。很多时候讨论线对,是为了反应原始场景中的细节的能力(不是数字图像哦~~)
颜色基础
- 白光是由不同颜色(而且这些颜色并不能再进一步被分解)的光线相混合而组成的
- 这些不同颜色的光线实际上是不同频率的电磁波。人的脑眼将不同频率的电磁波感知为不同的颜色
- 颜色可分为无彩色和有彩色两大类。无彩色指白色、黑色和各种深浅程度不同的灰色。彩色则指除去上述黑白系列以外的各种颜色
- 所有颜色都可以看作是三个基本颜色的不同组合:红绿蓝(RGB)
- 光的三补色:晶红(M,红加蓝,是绿的补色),蓝绿(C,蓝加绿,是红的补色),黄(Y,红加绿,是蓝的补色)。按一定的比例混合3基色或将一个补色与相对的基色混合,就可以产生白色
颜色的三种基本特性量
- 亮度:亮度与物体的反射率成正比,对彩色来说,颜色中掺入白色越多就越明亮,掺入黑色越多灰度就越小
- 色调:色调是与混合光谱中主要光波长相联系的
- 饱和度:与一定色调的纯度有关,纯光谱色是完全饱和的,随着白光的加入饱和度逐渐减少
- 色度:色调和饱和度合起来称为色度。颜色可以用亮度和色度共同表示
颜色模型
- RGB模型:面向输出设备的颜色模型
- HSI模型:面向彩色处理的颜色模型 H:色调 S:饱和度 I:密度 适合于借助人的视觉系统来感知彩色特性的图像处理算法
- RGB转换为HSI:
- HSI转换为RGB:
以上,总结了数组图像处理中的一些基本概念,下一篇打算写一下像素间的联系
注:文中图片来自上海交大赵宇明老师和电子科技大学李庆嵘老师ppt的截图