1、图像处理技术图像处理技术 机器视觉系统中,视觉信息的处理技术主要依赖于图像处理方法,它包括图像增强、数据编码和传输、平滑、边缘锐化、分割、特征抽取、图像识别与理解等内容。经过这些处理后,输出图像的质量得到相当程度的改善,既改善了图像的视觉效果,又便于计算机对图像进行分析、处理和识别。 3.3.1 图像的增强 图像增强处理技术一直是图像处理领域一类非常重要的基本处理技术。通过采取适当的增强处理可以将原本模糊不清甚至根本无法分辨的原始图片处理成清楚、明晰的富含大量有用信息的可使用图像,因此此类图像处理技术在医学、遥感、微生物、刑侦以及军事等诸多领域得到广泛应用。图像的增强用于调整图像的对比度,突出
2、图像中的重要细节,改善视觉质量。通常采用灰度直方图修改技术进行图像增强。 在空间域对图像进行增强处理的方式有许多种,如增强对比度和动态范围压缩等等,但这些处理方式都是针对原始图像的每一个像素直接对其灰度进行处理的,其处理过程主要是通过增强函数对像素的灰度级进行运算并将运算结果作为该像素的新灰度值来实现的。通过改变选用的增强函数的解析表达式就可以得到不同的处理效果,这类处理方法比较灵活方便,处理效果也不错,但对于某些灰度分布很密集或对比度很弱的图像,虽然也能起到一定的增强效果但并不明显。对于这种情况就可以采用本文提出的灰度直方图变换方法将原始图像密集的灰度分布变得比较疏散,从而拉大图像的对比度并
3、在视觉上达到明显增强的效果,使一些原本不易观察到的细节能变得清晰可辨。 图像的灰度直方图是表示一幅图像灰度分布情况的统计特性图表,与对比度紧密相连。 通常,在计算机中表示的一幅二维数字图像可表示为一个矩阵,其矩阵中的元素是位于相应坐标位置的图像灰度值,是离散化的整数,一般取0,1, 255。这主要是因为计算机中的一个字节所表示的数值范围是0255。另外,人眼也只能分辨32个左右的灰度级。所以,用一个字节表示灰度即可。 图像的灰度变换处理是通过改变原始图像各像素在各灰度级上的概率分布来实现的。通过对图像的灰度值进行统计可以得到一个一维离散的图像灰度统计直方图函数p(sk)=nk/n(这里k=0,
4、1,2L-1),该式表示在第k个灰度级上的像素个数nk占全部像素总数n的比例,p(sk)则给出了对sk出现概率的一个估计。因此该直方图函数实际是图像的各灰度级的分布情况的反映,换句话说也就是给出了该幅图像所有灰度值的整体描述。通过该函数可以清楚地了解到图像对应的 动态范围情况,可以了解到图像灰度的主要集中范围。因此可以通过图像增强程序的干预来改变直方图的灰度分布状况,使灰度均匀地或是按预期目标分布于整个灰度范围空间,从而达到增强图像对比度的效果。这种方法是基于数理统计和概率论的,比直接在空间域对原始图像采取对比度增强效果要好得多。在实际应用中直方图的变换主要有均衡变换和规定变换两种,而后者又可
5、根据灰度级映射规则的不同分单映射规则和组映射规则两种。 一、直方图均衡化处理 直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。对图像空间域点的增强过程是通过增强函数t=EH(s)来完成的,t、s分别为目标图像和原始图像上的像素点(x, y),在进行均衡化处理时,增强函数EH需要满足两个条件:增强函数EH(s)在0sL-1的范围内是一个单调递增函数,这个条件保证了在增强处理时没有打乱原始图像的灰度排列次序; 另一个需要满足的条件是对于0sL-1应当有0EH(s)L-1,它保证了变换过程中灰度值的动态范围的一致性。同样的,对于反变换过程s=
6、EH-1(t),在0t1时也必须满足上述两个条件。累计分布函数(cumulative distribution function,CDF)就是满足上述条件的一种,通过该函数可以完成s到t的均匀分布转换。此时的增强转换方程为: tk = EH(sk)=(ni/n)=ps(si),(k=0,1,2L-1)上述求和区间为0到k,根据该方程可以由原图像的各像素灰度值直接得到直方图均衡化后各像素的灰度值。在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布tk,按式tk=(N-1)* tk+0.5对其取整并得出源灰度sk到tk的灰度映射关系,其
7、中N为灰度的级数。重复上述步骤,得到所有的源图像各灰度级到目标图像各灰度级的映射关系,再按照新的映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化。下面是按照上述算法实现的部分关键程序代码。 首先对原始图像的各像素点的灰度情况进行统计计算。对于24位BMP图像,图像阵列是从第54字节开始的,每像素按R、G、B的顺序占3个字节。 for (DWORD i=54; i ns_rm_cpBufferi+; /ns_rk为k灰度级像素数,m_cpBufferi为当前的灰度值 i+; ns_gm_cpBufferi+; /ns_g为G分量的统计计数 i+; ns_bm_cpBufferi
8、+; /ns_b为B分量的统计计数 for (i=0; i256; i+) ;/计算R、G、B三分量的直方图分布 ps_ri=ns_ri/(m_dwFileLen-54)/3.0f); /ps_ri为R分量中i灰度级出现的概率 ps_gi=ns_gi/(m_dwFileLen-54)/3.0f); /ps_bi为G分量中i灰度级出现的概率 ps_bi=ns_bi/(m_dwFileLen-54)/3.0f); /ps_bi为B分量中i灰度级出现的概率 然后计算R、G、B三分量各灰度级的累计直方图分布,并对其进行取整以得出源和目标图像灰度之间的映射关系: for (i=0; i256; i+)
9、/计算累计直方图分布 temp_ri=temp_ri-1+ps_ri; temp_gi=temp_gi-1+ps_gi; temp_bi=temp_bi-1+ps_bi; /累计分布取整,ns_r、ns_g、ns_b保存有计算出来的灰 度映射关系 ns_ri=(int)(255.0f*temp_ri+0.5f); ns_gi=(int)(255.0f*temp_gi+0.5f); ns_bi=(int)(255.0f*temp_bi+0.5f); 最后按照计算出来的映射关系,把原图的原始灰度值映射到经过均衡化的新灰度级上。从实验结果可以看出原始图像太暗,根本看不清细节,而处理过的图像则比较清晰
10、: for (i=54; i m_cpBufferi=ns_rm_cpBufferi; /对R分量进行灰度映射(均衡化) i+; m_cpBufferi=ns_gm_cpBufferi; /对G分量进行灰度映射(均衡化) i+; m_cpBufferi=ns_bm_cpBufferi; /对B分量进行灰度映射(均衡化) 二、单映射规则的直方图规定化处理 前面的直方图均衡化处理方法从实验效果看还是很不错的,从实现算法上也可以看出其优点主要在于能自动增强整幅图像的对比度,但具体的增强效果也因此不易控制,只能得到全局均衡化处理的直方图。在科研和工程应用中往往要根据不同的要求得到特定形状的直方图分布以
11、有选择的对某灰度范围进行局部的对比度增强,此时可以采用对直方图的规定化处理,通过选择合适的规定化函数取得期望的效果。对于灰度级数分别为M和N(满足MN)的原始图和规定图,一般仍先按均衡化对原始图进行处理: tk =EHs(si)=ps(si),(k=0,1,2M-1) 然后规定需要的直方图,并计算出能使规定的直方图均衡化的变换: vl = EHu(uj)=pu(ui),(l=0,1,2N-1) 最后将第一步得到的变换反转过去,即把原始直方图对应映射到规定的直方图,也就是把所有的ps(si)映射到pu(uj)中去。由于映射是在离散空间进行的,而且在取整时不可避免会引入误差,因此采取何种对应规则是
12、一个很重要的问题。比较常用的一种方法是Gonzalez在1987年提出的单映射规则(single mapping law, SML),首先寻找能满足|ps(si)-pu(uj)| 最小的k和l(ps()和pu()的求和上限),然后把ps(si)映射到pu(uj)中去。 float a=1.0f/(32.0f*63.0f); /64个灰度级,a为步长 for (int i=0; i64; i+) nui=i*4; pui=a*i; 接下来对原始图和规定直方图计算累计直方图,在此不再赘述,重点是根据SML 规则把ps(si)映射到pu(uj)中去: for (i=0;i256;i+) for (i
13、nt j=0; j=0.0f) now_value=ps_ri-puj; else now_value=puj-ps_ri; if (now_value m_r=j; min_value_r=now_value; /对G和B分量处理的代码与R分量类似,在此省略 /建立灰度映射关系 ns_ri=num_r; ns_gi=num_g; ns_bi=num_b; 在得到ps(si)到pu(uj)的映射关系后,按照该映射关系把原图的原始灰度值映射到经过均衡化的新灰度级上,以完成最后的处理。实验得到的按单映射规则对直方图规定化后的效果,同直方图均衡化处理效果相比,高亮度部分得到了充分的增强。 三、组映射
14、规则的直方图规定化处理 单映射规则虽然实现起来比较简单直观,但在实际处理时仍存在不可忽视的取整误差,因此在一定程度上还不能很好的实现规定直方图的意图。可以通过在规定化直方图时选取适当的对应规则来改善,一种比较好的对应规则是组映射规则(group mapping law,GML)。这种规则的约定如下:存在一维离散整数函数I(a),(a=0,1,2N-1),而且满足0I(0) I(1) I(a) I(N-1) M-1。寻找能使|ps(si)-pu(uj)| 达到最小的I(a),其中ps(si)的求和区间为0,I(a), pu(uj)的求和区间仍为0,a。a=0时,将介于0和I(0)之间的ps(si
15、)都映射到pu(u0)中;1aN-1时,将介于I(a-1)+1和I(a)之间的ps(si)都映射到pu(uj)中去。 由于同单映射规则相比只是对应规则做了变化,因此编码部分只需将对应规则部分的代码根据上面介绍的组映射规则做必要修改即可: for (i=0; i64; i+) /对规定直方图的灰度级进行枚举 for (int j=0; j=0.0f) now_value=ps_rj-pui; else now_value=pui-ps_rj; if (now_value A2_r=j; min_value_r=now_value; for (int k=A1_r; k=A2_r; k+) /建立
16、R分量的映射规则 ns_rk=nui; A1_r=A2_r+1; /对于G、B分量的处理类似,在此省略 对原始图像应用本算法,实验得出的按组映射规则对原图做直方图规定化后的效果同单映射规则处理图像相比虽无太大变化,但在直方图分布和图像细节上更能体现出规定直方图的意图,而且通过下面的分析也可以看出组映射规则的误差要小得多。 在ps(si)映射到pu(uj)时,采取SML规则的映射方法由于取整误差的影响可能产生的最大误差是pu(uj)/2,而采用GML规则的映射方法可能出现的误差为ps(si)/2,由于MN,所以一定有pu(uj)/2ps(si)/2成立,也就是说SML映射规则的期望误差一定不会小
17、于GML映射规则的期望误差。而且从算法实现上也可以看出,SML映射规则是一种有偏的映射规则,某些范围的灰度级会被有偏地映射到接近开始计算的灰度级;而GML映射规则是统计无偏的,从根本上避免了上述问题的出现。通过分析可以看出GML映射规则总会比SML映射规则更能体现规定直方图的意图,而且通常产生的误差只有SML映射规则的十几分之一。 3.3.2 图像的平滑 图像的平滑处理技术即图像的去噪声处理,主要是为了去除实际成像过程中,因成像设备和环境所造成的图像失真,提取有用信息。众所周知,实际获得的图像在形成、传输、接收和处理的过程中,不可避免地存在着外部干扰和内部干扰,如光电转换过程中敏感元件灵敏度的
18、不均匀性、数字化过程的量化噪声、传输过程中的误差以及人为因素等,均会使图像变质。因此,去除噪声,恢复原始图像是图像处理中的一个重要内容。 在本世纪四、五十年代发展起来的线性滤波器以其完善的理论基础,数学处理方便,易于采用FFT和硬件实现等优点,一直在图像滤波领域占有重要地位,其中以WIENER滤波器理论和卡尔曼滤波理论为代表。但是线性滤波器存在着计算复杂度高,不便于实时处理等缺点。虽然它对高斯噪声有良好的平滑作用,但对脉冲信号干扰和其它形式的噪声干扰抑制效果差,信号边缘模糊。为此,1971年,著名学者TUKEY提出非线笥滤波器中值滤波器,即把局部区域中灰度的中值作为输出灰度,并将其与统计学理论
19、结合起来,使用迭代方法,比较理想地将图像从噪声中恢复出来,并且能保护图像的轮廓边界,不使其变模糊。近年来,非线性滤波理论在机器视觉、医学成像、语音处理等领域有了广泛的应用,同时,也反过来促使该理论的研究向纵深方向发展。 3.3.3 图像的数据编码和传输 数字图像的数据量是相当庞大的,一幅512*512个像素的数字图像的数据量为256 K字节,若假设每秒传输25帧图像,则传输的信道速率为52.4M比特/秒。高信道速率意味着高投资,也意味着普及难度的增加。因此,传输过程中,对图像数据进行压缩显得非常重要。数据的压缩主要通过图像数据的编码和变换压缩完成。 图像数据编码一般采用预测编码,即将图像数据的
20、空间变化规律和序列变化规律用一个预测公式表示,如果知道了某一像素的前面各相邻像素值之后,可以用公式预测该像素值。采用预测编码,一般只需传输图像数据的起始值和预测误差,因此可将8比特/像素压缩到2比特/像素。 变换压缩方法是将整幅图像分成一个个小的(一秀取8*8或16*16)数据块,再将这些数据块分类、变换、量化,从而构成自适应的变换压缩系统。该方法可将一幅图像的数据压缩到为数不多的几十个特传输,在接收端再变换回去即可。 3.3.4 边缘锐化 图像边缘锐化处理主要是加强图像中的轮廓边缘和细节,形成完整的物体边界,达到将物体从图像中分离出来或将表示同一物体表面的区域检测出来的目的。它是早期视觉理论和算法中的基本问题,也是中期和后期视觉成败的重要因 素之一。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1