经过一段人工智能基础性知识学习的时间,我现在已经进入深度学习的项目实践期。在深度学习的学习众多的方向中,目前主要偏向计算机视觉方向的学习。计算机视觉项目中一般需要大量的对图像进行预处理,为此,写下这篇文章,总结一下自己关于数字图像处理入门阶段的学习。如有错误,希望指正。
一. 什么是数字图像、计算机图像处理?
数字图像
图像是对客观对象的一种相似性的、生动性的描述或写真,或者说图像是客观对象的一种表示。而数字图像,是以二维数字组形式表示的图像,其数字单元为像素。每个像素具有整数行(高)和列(宽)位置坐标,同时每个像素都具有整数灰度值或颜色值。
分类:
(1)二值图像:一幅二值图像的二维矩阵仅由0、1两个值构成,“0”代表黑色,“1”代白色。由于每一像素(矩阵中每一元素)取值仅有0、1两种可能,所以计算机中二值图像的数据类型通常为1个二进制位。二值图像通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。
(2)灰度图像:灰度图像矩阵元素的取值范围通常为[0,255]。因此其数据类型一般为8位无符号整数(int8),这就是人们经常提到的256灰度图像。“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。在某些软件中,灰度图像也可以用双精度数据类型(double)表示,像素的值域为[0,1],0代表黑色,1代表白色,0到1之间的小数表示不同的灰度等级。二值图像可以看成是灰度图像的一个特例。
(3)彩色图像(Color Image):每幅彩色图像是由三幅不同颜色的灰度图像组合而成,一个为红色,一个为绿色,另一个为蓝色。
(4)三维图像 (3D Image):三维图像是由一组堆栈的二维图像组成。每一幅图像表示该物体的一个横截面。
计算机图像处理
我们可以通过计算机来处理这些图像数据,分析出图像的数值特征,进而按照我们的意愿将图像处理成我们想要的结果。
二. 数字图像处理基本概念
三原色原理:
人眼对(Red Green Blue)红、绿、蓝最为敏感,人的眼睛像一个三色接收器的体系,大多数的颜色可以通过红、绿、蓝三色按照不同的比例合成产生。同样,绝大多数单色光也可以分解成红、绿、蓝三种色光,这是色度学的最基本的原理,也称三原色原理。
(1)自然界的任何光色都可以由3种光色按不同的比例混合而成。
(2)三原色之间是相互独立的,任何一种光色都不能由其余的两种光色来组成。
(3)混合色的饱和度由3种光色的比例来决定。混合色的亮度为3种光色的亮度之和。
显示器为什么有颜色?
通过三原色可以组合出来自然界的各种各样的色彩,每种颜色值可以通过数值来表示大小强弱等,以目前计算机中8位(正好表示0-255的数值范围)来保存颜色值,每种颜色值的范围是0-255个值来表示,根据组合原理三种色组合起来有255*255*255种色彩,对于我们肉眼的分辨能力已经够用了。
理解了三原色再来看这个问题会比较简单,电子屏幕上有可以发光的三种材料荧光材料,在经过电子枪照射时会组合成不同颜色,电子枪的强弱即可以表示三种原色的色值大小(由0(黑)到255(白)的亮度值表示),组合出来的颜色也就各不相同,有些特别相似的颜色也不是我们肉眼就能看出来的,即满足了在我们视力范围内的色彩。
一张图片在屏幕上面如果无限缩小会看到是由无数个点组成的,其实任何事物都是由无限到有限来组成,无数个点会组成一个平面,当点和点之间的间距足够小时我们的肉眼是分不出来的,我们看到的就是一个图像,当无限个图像从我们眼前闪过就会形成视频电影,他们都是一个道理,好比几何中的点组成线、线组成面、面组成立体空间,当分析到这一层次图像识别就显着处理简单了,只要让计算机计算组成图片的无数个点的特征就可以识别出来相似图片,当然这也依赖于强大的运算能力。
数字图像的表示
一幅图像可以被定义为一个二维函数f(x,y),其中(x,y)是空间(平面)坐标,在任何坐标(x,y)处的幅度f被定义为图像在这一位置的亮度。
图像在x和y坐标以及在幅度变化上是连续的。要将这样的一幅图像转换成数字形式,要求对坐标和幅度进行数字化。将坐标值数字化称为取样,将幅值数字化称为量化。因此,当x、y分量及幅值f都是有限且离散的量时,我们称图像为数字图像。灰度图像是一个二维灰度(或亮度)函数f(x,y)。彩色图像由三个(如RGB,HSV)二维灰度(或亮度)函数f(x,y)组成。
坐标约定
取样和量化的结果都是实数矩阵。假设对一幅图像f(x,y)采样后,可得到一幅M行、N列的图像,称这幅图像大小是M x N。相应的值是离散的。为了符号清晰和方便可见,这些离散的坐标都取整数。两种方法表示数字图像。
一种是将图像的原点定义为(x,y)=(0,0)。图像中沿着第1行的下一坐标点(x,y)=(0,1)。符号(0,1)用来表示沿着第1行的第2个取样。图1-1显示这一坐标约定。注意x是从0到M-1的整数,y是从0到N-1的整数。
另外一种是坐标原点为(x,y)=(1,1),如在matlab的图像处理工具箱中。这种约定如图1-2所示:
图像的矩阵表示
根据图1-1的坐标系统,我们可以得到数字图像的下列表示:等式右边是定义的一幅数字图像。阵列中每个元素都被称为图像元素、图画元素或像素。
根据图1-2的坐标系统,我们可以得到数字图像的下列表示: