补充一下数字图像处理的基础知识
什么叫灰度图?任何颜色都有红、绿、蓝三原色组成,而灰度图只有一个通道,他有256个灰度等级,255代表全白,0表示全黑。
图像的灰度直方图
灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其出现的频率。
数字图像处理之点运算—灰度的线性变换
灰度变换是指根据某种目标条件按一定变换关系逐点改变源图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。 图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。
灰度非线性变换主要包括对数变换、幂次变换、指数变换、分段函数变换(此又称为灰度拉伸)等。
对数变换
图像灰度扩展和压缩的功能;扩展低灰度值而压缩高灰度值。
幂次变换
常用于显示设备的伽马校正中。
指数变换
和对数变换相反,指数变换扩展图像高灰度值,压缩图像低灰度值。
灰度拉伸又叫对比度拉伸,它是最基本的一种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。
它可以有选择的拉伸某段灰度区间以改善输出图像。如图1所示,所示的变换函数的运算结果是将原图在a到b之间的灰度拉伸到c到d之间。如果一幅图像的灰度集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来拉伸(斜率>1)物体灰度区间以改善图像;同样如果图像灰度集中在较亮的区域而导致图像偏亮,也可以用灰度拉伸功能来压缩(斜率<1)物体灰度区间以改善图像质量。
灰度均衡,是以累计分布函数变换为基础的直方图修正法,它可以产生一幅灰度级分布概率均匀的图像。即,经过灰度均衡后的图像在每一级灰度上像素点的数量相差不大,对应灰度直方图的每一级灰度高度也差不多。
灰度均衡属于改进图像的方法,均衡后的图像具有较大的信息量。
图像几何变换又称为图像空间变换,它将一副图像中的坐标位置映射到另一幅图像中的新坐标位置。
图像的平移变换就是将图像所有的像素坐标分别加上指定的水平偏移量和垂直偏移量。
原图像素的位置坐标为(x0,y0),经过平移量 ( Δ x , Δ y ) (\Delta x,\Delta y) (Δx,Δy)后,坐标变为(x1,y1)
数学公式表示为:
x 1 = x 0 + △ x , y 1 = y 0 + △ y x1 = x0 + △x,\\ y1 = y0 + △y x1=x0+△x,y1=y0+△y
用矩阵表示为:
[ x 1 y 1 1 ] = [ 1 0 Δ x 0 1 Δ y 0 0 1 ] [ x 0 y 0 1 ] \begin{bmatrix} x1 \\y1\\1\\ \end{bmatrix}=\begin{bmatrix} 1&0&\Delta x \\ 0&1&\Delta y \\0&0&1\\ \end{bmatrix}\begin{bmatrix} x0 \\y0\\1\\ \end{bmatrix} ⎣⎡x1y11⎦⎤=⎣⎡100010ΔxΔy1⎦⎤⎣⎡x0y01⎦⎤
其中矩阵
[ 1 0 Δ x 0 1 Δ y 0 0 1 ] \begin{bmatrix} 1&0&\Delta x \\ 0&1&\Delta y \\0&0&1\\ \end{bmatrix} ⎣⎡100010ΔxΔy1⎦⎤
称为平移变换矩阵(或者因子)。
[ f 11 f 12 f 13 f 14 f 15 f 21 f 22 f 23 f 24 f 25 f 31 f 32 f 33 f 34 f 35 f 41 f 42 f 43 f 44 f 45 f 51 f 52 f 53 f 54 f 55 ] \begin{bmatrix} f_{11}& f_{12}& f_{13}& f_{14}& f_{15} \\ f_{21}& f_{22}& f_{23}& f_{24}& f_{25} \\ f_{31}& f_{32}& f_{33}& f_{34}& f_{35} \\f_{41}& f_{42}& f_{43}& f_{44}& f_{45} \\f_{51}& f_{52}& f_{53}& f_{54}& f_{55} \\ \end{bmatrix} ⎣⎢⎢⎢⎢⎡f11f21f31f41f51f12f22f32f42f52f13f23f33f43f53f14f24f34f44f54f15f25f35f45f55⎦⎥⎥⎥⎥⎤
变换后
[ f 15 f 14 f 13 f 12 f 11 f 25 f 24 f 23 f 22 f 21 f 35 f 34 f 33 f 32 f 31 f 45 f 44 f 43 f 42 f 41 f 55 f 54 f 53 f 52 f 51 ] \begin{bmatrix} f_{15}& f_{14}& f_{13}& f_{12}& f_{11} \\ f_{25}& f_{24}& f_{23}& f_{22}& f_{21} \\ f_{35}& f_{34}& f_{33}& f_{32}& f_{31} \\f_{45}& f_{44}& f_{43}& f_{42}& f_{41} \\f_{55}& f_{54}& f_{53}& f_{52}& f_{51} \\ \end{bmatrix} ⎣⎢⎢⎢⎢⎡f15f25f35f45f55f14f24f34f44f54f13f23f33f43f53f12f22f32f42f52f11f21f31f41f51⎦⎥⎥⎥⎥⎤
垂直镜像
将图像的上下部分以图像的水平中轴线为对称线进行镜像变换。
[ f 11 f 12 f 13 f 14 f 15 f 21 f 22 f 23 f 24 f 25 f 31 f 32 f 33 f 34 f 35 f 41 f 42 f 43 f 44 f 45 f 51 f 52 f 53 f 54 f 55 ] \begin{bmatrix} f_{11}& f_{12}& f_{13}& f_{14}& f_{15} \\ f_{21}& f_{22}& f_{23}& f_{24}& f_{25} \\ f_{31}& f_{32}& f_{33}& f_{34}& f_{35} \\f_{41}& f_{42}& f_{43}& f_{44}& f_{45} \\f_{51}& f_{52}& f_{53}& f_{54}& f_{55} \\ \end{bmatrix} ⎣⎢⎢⎢⎢⎡f11f21f31f41f51f12f22f32f42f52f13f23f33f43f53f14f24f34f44f54f15f25f35f45f55⎦⎥⎥⎥⎥⎤
变换后
[ f 51 f 52 f 53 f 54 f 55 f 41 f 42 f 43 f 44 f 45 f 31 f 32 f 33 f 34 f 35 f 21 f 22 f 23 f 24 f 25 f 11 f 12 f 13 f 14 f 15 ] \begin{bmatrix} f_{51}& f_{52}& f_{53}& f_{54}& f_{55} \\ f_{41}& f_{42}& f_{43}& f_{44}& f_{45} \\ f_{31}& f_{32}& f_{33}& f_{34}& f_{35} \\f_{21}& f_{22}& f_{23}& f_{24}& f_{25} \\f_{11}& f_{12}& f_{13}& f_{14}& f_{15} \\ \end{bmatrix} ⎣⎢⎢⎢⎢⎡f51f41f31f21f11f52f42f32f22f12f53f43f33f23f13f54f44f34f24f14f55f45f35f25f15⎦⎥⎥⎥⎥⎤
对角镜像
将图像以图像水平中轴线和垂直中轴线的交点为中心进行镜像对换,等价于图像先水平镜像后垂直镜像。
[ f 55 f 54 f 53 f 52 f 51 f 45 f 44 f 43 f 42 f 41 f 35 f 34 f 33 f 32 f 31 f 25 f 24 f 23 f 22 f 21 f 15 f 14 f 13 f 12 f 11 ] \begin{bmatrix} f_{55}& f_{54}& f_{53}& f_{52}& f_{51} \\ f_{45}& f_{44}& f_{43}& f_{42}& f_{41} \\ f_{35}& f_{34}& f_{33}& f_{32}& f_{31} \\f_{25}& f_{24}& f_{23}& f_{22}& f_{21} \\f_{15}& f_{14}& f_{13}& f_{12}& f_{11} \\ \end{bmatrix} ⎣⎢⎢⎢⎢⎡f55f45f35f25f15f54f44f34f24f14f53f43f33f23f13f52f42f32f22f12f51f41f31f21f11⎦⎥⎥⎥⎥⎤
就和数学中矩阵转置一样。图像归咎是用矩阵表示的。
水平缩放系数 s x s_x sx;垂直缩放系数 s y s_y sy
{ x = s x × x 0 y = s y × y 0 \begin{cases} x=s_x\times x_0 \\ y=s_y\times y_0\end{cases} {x=sx×x0y=sy×y0
缩放后的图像大小
{ n e w W i d t h = s x × w i d t h n e w H e i g h t = s y × h e i g h t \begin{cases} newWidth=s_x\times width \\ newHeight=s_y\times height\end{cases} {newWidth=sx×widthnewHeight=sy×height
图像按照其中心店旋转指定的角度;不变形。
基本方法:时域处理和频域处理两种。平滑处理是典型的增强方法;主要任务既平滑掉噪声,又保持图像的细节。
通过邻域简单平均对图像进行平滑处理的方法。此方法可以在一定程度上消除原始图像中的噪声,降低原始图像的对比度。
具体算法:对图像中的一定邻域内的像素灰度求平均值,将平均的结果作为中心像素的灰度保存在结果图中。
比如 3 × 3 3\times3 3×3的简单平滑模板。
[ 1 1 1 1 1 1 1 1 1 ] \begin{bmatrix} 1&1&1\\ 1&1&1 \\1&1&1\\ \end{bmatrix} ⎣⎡111111111⎦⎤
也是利用邻域平均的思想对图像进行平滑的一种方法。与简单平滑不同的是,在高斯平滑中,对图像邻域进行平均时,不同位置的像素被赋予了不同的权值。
比如 3 × 3 3\times3 3×3的高斯平滑模板。
[ 1 2 1 2 4 2 1 2 1 ] \begin{bmatrix} 1&2&1\\ 2&4&2 \\1&2&1\\ \end{bmatrix} ⎣⎡121242121⎦⎤
效果
图像总体特征进行提取和增强,具有很好的效果。
权值的确定
高斯分布函数确定。就是正态分布。
中值滤波是一种非线性的图像处理方法。通过对邻域内像素按灰度排序结果决定中心像素的灰度。
增强图像边缘细节;就需要进行锐化处理,提高对比度。
三种特殊的图像特征是孤立点、线和边缘。边缘像素是图像中灰度突变的那些像素,而边缘是相连边缘像素的集合。
计算图像中每个像素位置处的一阶导数和二阶导数的一种方法是使用空间滤波器。比如3*3滤波器,该过程是计算模板系数与被该模板覆盖区域中的灰度值的乘积之和(就像卷积神经网络中的卷积层操作一样),模板在该区域中心点处的响应是
R = w 1 z 1 + w 2 z 2 + . . . + w 9 z 9 = ∑ m = 0 9 w k z k (4-1) R = w_1z_1+w_2z_2+...+w_9z_9=\sum_{m=0}^9 w_{k}z_{k} \tag {4-1} R=w1z1+w2z2+...+w9z9=m=0∑9wkzk(4-1)
f ( x ) = ∣ a − b ∣ f(x)=\lvert a-b\rvert f(x)=∣a−b∣
点的检测以二阶导数为基础。使用拉普拉斯算子:
∇ 2 f ( x , y ) = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 \nabla^{2}f(x,y)= \frac {\partial^2f} {\partial x^2} + \frac {\partial^2f} {\partial y^2} ∇2f(x,y)=∂x2∂2f+∂y2∂2f
∇ 2 f ( x , y ) = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) \nabla^{2}f(x,y)=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y) ∇2f(x,y)=f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x,y)
使用如下的拉普拉斯模板,如果在某个点处,该模板的响应的绝对值超过了某个指定的阈值,那么模板中心位置(x,y)处的该点已经被检测到。如下表达式:
g ( x , y ) = { 1 , |R(x,y)|<=T 0 , 其他 g(x,y)= \begin{cases} 1, & \text{|R(x,y)|<=T} \\ 0,& \text{其他} \end{cases} g(x,y)={1,0,|R(x,y)|<=T其他
点检测拉普拉斯模板:
[ 1 1 1 1 − 8 1 1 1 1 ] \begin{bmatrix} 1 & 1 & 1\\ 1 & -8 & 1 \\ 1 & 1 & 1 \\ \end{bmatrix} ⎣⎡1111−81111⎦⎤
把图像划分成若干个特定的、具有独特性质的区域,并提取其中感兴趣目标的基数和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。
1998年以来,人工神经网络识别技术已经引起了广泛的关注,并且应用于图像分割。基于神经网络的分割方法的基本思想是通过训练多层感知机来得到线性决策函数,然后用决策函数对像素进行分类来达到分割的目的。这种方法需要大量的训练数据。神经网络存在巨量的连接,容易引入空间信息,能较好地解决图像中的噪声和不均匀问题。选择何种网络结构是这种方法要解决的主要问题。
灰度阈值分割法是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。阈值分割方法实际上是输入图像f到输出图像g的如下变换:
g ( x , y ) = { 1 , f ( x , y ) > T 0 , f ( x , y ) ≤ T g(x,y)= \begin{cases} 1, & \text {$f(x,y)>T$} \\ 0, & \text{$f(x,y)\leq T$} \end{cases} g(x,y)={1,0,f(x,y)>Tf(x,y)≤T
其中,T为阈值,f(x,y)为点(x,y)的像素值,g(x,y)为分割后的图像。
阈值分割算法的关键是确定阈值,如果能确定一个合适的阈值就可准确地将图像分割开来。阈值确定后,将阈值与像素点的灰度值逐个进行比较,而且像素分割可对各像素并行地进行,分割的结果直接给出图像区域。
阈值包括全局阈值、自适应阈值、最佳阈值等等。
全局阈值是指整幅图像使用同一个阈值做分割处理,适用于背景和前景有明显对比的图像。它是根据整幅图像确定的:T=T(f)。但是这种方法只考虑像素本身的灰度值,一般不考虑空间特征,因而对噪声很敏感。常用的全局阈值选取方法有利用图像灰度直方图的峰谷法、最小误差法、最大类间方差法、最大熵自动阈值法以及其它一些方法。
区域生长法,是基于区域的图像分割方法。该算法从“种子”开始,即选取一个或一组像素点作为算法的起点,从种子出发判断邻近点是否满足算法定义的相似性准则。若满足则将邻近点归入同一区域,并将其作为新的种子重新“生长”,直至不再有新的点归入区域,算法分割结束。算法定义的相似性准则需要根据具体的情况而定,通常是根据图像的灰度值、矩、纹理等。
SIFT和HOG这两种传统的特征提取方法
摘自冈萨雷斯《数字图像处理》
膨胀是在二值图像中“加长”或“变粗”的操作。这种特殊的方式和变粗的程度由一个称为结构元素的集合控制。图中说明了膨胀的计算过程。图(a)显示了包含一个矩形对象的简单二值图像;图(b)是一个结构元素,在此例中它是一条5个像素长的斜线。计算时,结构元素通常用0和1的矩阵表示。有时,如图中所示,为方便起见可只显示1。另外,结构元素的原点必须明确标明。图(b)用黑色方框标明了结构元素的原点。图©明确地描述了膨胀处理,这种处理会将结构元素的原点平移过整个图像区域,并且核对哪些地方与值为I的像素重叠。图(d)所示的输出图像在原点的每个位置均为1,从而在输人图像中结构元素至少重叠了一个1值像素。
(b)以对角线排列的有5个像素的结构元素,结构元素的原点带有黑框
数学上,膨胀定义为集合运算。A被B膨胀,记为A⊕B,定义为
其中,0为空集,B为结构元素。总之,A被B膨胀是所有结构元素原点位置组成的集合,其中映射并平移后的B至少与A的某些部分重叠。上述图中没有明显的显示结构元素映射,因为这种情况的结构元素是关于原点对称的。下图显示非对称结构元素及映射。
膨胀满足交换律:即A⊕B=B⊕A .在图像处理中,习惯于令A⊕B的第一个操作数为图像,而第二个操作数微结构元素,结构图像往往比元素小很多。
腐蚀“收缩"或“细化”二值图像中的对象。像在膨胀中一样, 收缩的方式和程度由一个结构元素控制。下图说明了腐蚀过程。图膨胀(a)和图腐蚀(a)相同,图腐蚀(b)是结构元素,即一条短垂直线。图腐蚀©生动地描述了腐蚀在整个图像区域平移结构元素的过程,并检查在哪里完全匹配图像的前景部分。图腐蚀(d)所示的输出图像中,结构元素原点的每个位置的值为1,因而该元素仅叠加了输人图像的1值像素(即它并不叠加任何图像背景)。
腐蚀的数学定义与膨胀相似,A被B腐蚀记为AB,定义为
换言之,A被B腐蚀是所有结构元素的原点位置的集合,其中平移的B与A的背景并不叠加。
简单说明如下,目的是为了去除图中的细线。看结果粗略理解解相关概念,详细代码去此版书阅读。
未完待续