图像处理技术Word下载.docx

上传人:b****6 文档编号:20066372 上传时间:2023-01-16 格式:DOCX 页数:7 大小:20.15KB
下载 相关 举报
图像处理技术Word下载.docx_第1页
第1页 / 共7页
图像处理技术Word下载.docx_第2页
第2页 / 共7页
图像处理技术Word下载.docx_第3页
第3页 / 共7页
图像处理技术Word下载.docx_第4页
第4页 / 共7页
图像处理技术Word下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

图像处理技术Word下载.docx

《图像处理技术Word下载.docx》由会员分享,可在线阅读,更多相关《图像处理技术Word下载.docx(7页珍藏版)》请在冰豆网上搜索。

图像处理技术Word下载.docx

所以,用一个字节表示灰度即可。

图像的灰度变换处理是通过改变原始图像各像素在各灰度级上的概率分布来实现的。

通过对图像的灰度值进行统计可以得到一个一维离散的图像灰度统计直方图函数p(sk)=nk/n(这里k=0,1,2……L-1),该式表示在第k个灰度级上的像素个数nk占全部像素总数n的比例,p(sk)则给出了对sk出现概率的一个估计。

因此该直方图函数实际是图像的各灰度级的分布情况的反映,换句话说也就是给出了该幅图像所有灰度值的整体描述。

通过该函数可以清楚地了解到图像对应的

动态范围情况,可以了解到图像灰度的主要集中范围。

因此可以通过图像增强程序的干预来改变直方图的灰度分布状况,使灰度均匀地或是按预期目标分布于整个灰度范围空间,从而达到增强图像对比度的效果。

这种方法是基于数理统计和概率论的,比直接在空间域对原始图像采取对比度增强效果要好得多。

在实际应用中直方图的变换主要有均衡变换和规定变换两种,而后者又可根据灰度级映射规则的不同分单映射规则和组映射规则两种。

一、直方图均衡化处理

直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。

对图像空间域点的增强过程是通过增强函数t=EH(s)来完成的,t、s分别为目标图像和原始图像上的像素点(x,y),在进行均衡化处理时,增强函数EH需要满足两个条件:

增强函数EH(s)在0≤s≤L-1的范围内是一个单调递增函数,这个条件保证了在增强处理时没有打乱原始图像的灰度排列次序;

另一个需要满足的条件是对于0≤s≤L-1应当有0≤EH(s)≤L-1,它保证了变换过程中灰度值的动态范围的一致性。

同样的,对于反变换过程s=EH-1(t),在0≤t≤1时也必须满足上述两个条件。

累计分布函数(cumulativedistributionfunction,CDF)就是满足上述条件的一种,通过该函数可以完成s到t的均匀分布转换。

此时的增强转换方程为:

tk=EH(sk)=∑(ni/n)=∑ps(si),(k=0,1,2……L-1)上述求和区间为0到k,根据该方程可以由原图像的各像素灰度值直接得到直方图均衡化后各像素的灰度值。

在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布tk,按式tk=[(N-1)*tk+0.5]对其取整并得出源灰度sk到tk的灰度映射关系,其中N为灰度的级数。

重复上述步骤,得到所有的源图像各灰度级到目标图像各灰度级的映射关系,再按照新的映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化。

下面是按照上述算法实现的部分关键程序代码。

首先对原始图像的各像素点的灰度情况进行统计计算。

对于24位BMP图像,图像阵列是从第54字节开始的,每像素按R、G、B的顺序占3个字节。

for(DWORDi=54;

i

ns_r[m_cpBuffer[i]]++;

//ns_r[k]为k灰度级像素数,m_cpBuffer[i]为当前的灰度值

i++;

ns_g[m_cpBuffer[i]]++;

//ns_g为G分量的统计计数

ns_b[m_cpBuffer[i]]++;

//ns_b为B分量的统计计数

}

for(i=0;

i<

256;

i++);

//计算R、G、B三分量的直方图分布

{

ps_r[i]=ns_r[i]/((m_dwFileLen-54)/3.0f);

//ps_r[i]为R分量中i灰度级出现的概率

ps_g[i]=ns_g[i]/((m_dwFileLen-54)/3.0f);

//ps_b[i]为G分量中i灰度级出现的概率

ps_b[i]=ns_b[i]/((m_dwFileLen-54)/3.0f);

//ps_b[i]为B分量中i灰度级出现的概率

然后计算R、G、B三分量各灰度级的累计直方图分布,并对其进行取整以得出源和目标图像灰度之间的映射关系:

i++)

{//计算累计直方图分布

temp_r[i]=temp_r[i-1]+ps_r[i];

temp_g[i]=temp_g[i-1]+ps_g[i];

temp_b[i]=temp_b[i-1]+ps_b[i];

//累计分布取整,ns_r[]、ns_g[]、ns_b[]保存有计算出来的灰

度映射关系

ns_r[i]=(int)(255.0f*temp_r[i]+0.5f);

ns_g[i]=(int)(255.0f*temp_g[i]+0.5f);

ns_b[i]=(int)(255.0f*temp_b[i]+0.5f);

最后按照计算出来的映射关系,把原图的原始灰度值映射到经过均衡化的新灰度级上。

从实验结果可以看出原始图像太暗,根本看不清细节,而处理过的图像则比较清晰:

for(i=54;

m_cpBuffer[i]=ns_r[m_cpBuffer[i]];

//对R分量进行灰度映射(均衡化)

m_cpBuffer[i]=ns_g[m_cpBuffer[i]];

//对G分量进行灰度映射(均衡化)

m_cpBuffer[i]=ns_b[m_cpBuffer[i]];

//对B分量进行灰度映射(均衡化)

二、单映射规则的直方图规定化处理

前面的直方图均衡化处理方法从实验效果看还是很不错的,从实现算法上也可以看出其优点主要在于能自动增强整幅图像的对比度,但具体的增强效果也因此不易控制,只能得到全局均衡化处理的直方图。

在科研和工程应用中往往要根据不同的要求得到特定形状的直方图分布以有选择的对某灰度范围进行局部的对比度增强,此时可以采用对直方图的规定化处理,通过选择合适的规定化函数取得期望的效果。

对于灰度级数分别为M和N(满足M≥N)的原始图和规定图,一般仍先按均衡化对原始图进行处理:

tk=EHs(si)=∑ps(si),(k=0,1,2……M-1)

然后规定需要的直方图,并计算出能使规定的直方图均衡化的变换:

vl=EHu(uj)=∑pu(ui),(l=0,1,2……N-1)

最后将第一步得到的变换反转过去,即把原始直方图对应映射到规定的直方图,也就是把所有的ps(si)映射到pu(uj)中去。

由于映射是在离散空间进行的,而且在取整时不可避免会引入误差,因此采取何种对应规则是一个很重要的问题。

比较常用的一种方法是Gonzalez在1987年提出的单映射规则(singlemappinglaw,SML),首先寻找能满足|∑ps(si)-∑pu(uj)|最小的k和l(ps()和pu()的求和上限),然后把ps(si)映射到pu(uj)中去。

floata=1.0f/(32.0f*63.0f);

//64个灰度级,a为步长

for(inti=0;

64;

nu[i]=i*4;

pu[i]=a*i;

接下来对原始图和规定直方图计算累计直方图,在此不再赘述,重点是根据SML规则把ps(si)映射到pu(uj)中去:

i<

i++)

……

for(intj=0;

j<

j++)

floatnow_value=0.0f;

//计算R分量的两累计直方图的绝对差值,并

找到满足最小的灰度级

if(ps_r[i]-pu[j]>

=0.0f)

now_value=ps_r[i]-pu[j];

else

now_value=pu[j]-ps_r[i];

if(now_value

m_r=j;

min_value_r=now_value;

……/对G和B分量处理的代码与R分量类似,在此省略

//建立灰度映射关系

ns_r[i]=nu[m_r];

ns_g[i]=nu[m_g];

ns_b[i]=nu[m_b];

在得到ps(si)到pu(uj)的映射关系后,按照该映射关系把原图的原始灰度值映射到经过均衡化的新灰度级上,以完成最后的处理。

实验得到的按单映射规则对直方图规定化后的效果,同直方图均衡化处理效果相比,高亮度部分得到了充分的增强。

三、组映射规则的直方图规定化处理

单映射规则虽然实现起来比较简单直观,但在实际处理时仍存在不可忽视的取整误差,因此在一定程度上还不能很好的实现规定直方图的意图。

可以通过在规定化直方图时选取适当的对应规则来改善,一种比较好的对应规则是组映射规则(groupmappinglaw,GML)。

这种规则的约定如下:

存在一维离散整数函数I(a),(a=0,1,2……N-1),而且满足0≤I(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)都映射到pu(u0)中;

1≤a≤N-1时,将介于I(a-1)+1和I(a)之间的ps(si)都映射到pu(uj)中去。

由于同单映射规则相比只是对应规则做了变化,因此编码部分只需将对应规则部分的代码根据上面介绍的组映射规则做必要修改即可:

i++)//对规定直方图的灰度级进行枚举

j++)//对原图的灰度级进行枚举

//寻找对于R变量能满足差值最小的I(a),保存于A2_r

if(ps_r[j]-pu[i]>

now_value=ps_r[j]-pu[i];

now_value=pu[i]-ps_r[j];

A2_r=j;

for(intk=A1_r;

k<

=A2_r;

k++)//建立R分量的映射规则

ns_r[k]=nu[i];

A1_r=A2_r+1;

//对于G、B分量的处理类似,在此省略

对原始图像应用本算法,实验得出的按组映射规则对原图做直方图规定化后的效果同单映射规则处理图像相比虽无太大变化,但在直方图分布和图像细节上更能体现出规定直方图的意图,而且通过下面的分析也可以看出组映射规则的误差要小得多。

在ps(si)映射到pu(uj)时,采取SML规则的映射方法由于取整误差的影响可能产生的最大误差是pu(uj)/2,而采用GML规则的映射方法可能出现的误差为ps(si)/2,由于M≥N,所以一定有pu(uj)/2≥ps(si)/2成立,也就是说SML映射规则的期望误差一定不会小于GML映射规则的期望误差。

而且从算法实现上也可以看出,SML映射规则是一种有偏的映射规则,某些范围的灰度级会被有偏地映射到接近开始计算的灰度级;

而GML映射规则是统计无偏的,从根本上避免了上述问题的出现。

通过分析可以看出GML映射规则总会比SML映射规则更能体现规定直方图的意图,而且通常产生的误差只有SML映射规则的十几分之一。

3.3.2图像的平滑

图像的平滑处理技术即图像的去噪声处理,主要是为了去除实际成像过程中,因成像设备和环境所造成的图像失真,提取有用信息。

众所周知,实际获得的图像在形成、传输、接收和处理的过程中,不可避免地存在着外部干扰和内部干扰,如光电转换过程中敏感元件灵敏度的不均匀性、数字化过程的量化噪声、传输过程中的误差以及人为因素等,均会使图像变质。

因此,去除噪声,恢复原始图像是图像处理中的一个重要内容。

在本世纪四、五十年代发展起来的线性滤波器以其完善的理论基础,数学处理方便,易于采用FFT和硬件实现等优点,一直在图像滤波领域占有重要地位,其中以WIENER滤波器理论和卡尔曼滤波理论为代表。

但是线性滤波器存在着计算复杂度高,不便于实时处理等缺点。

虽然它对高斯噪声有良好的平滑作用,但对脉冲信号干扰和其它形式的噪声干扰抑制效果差,信号边缘模糊。

为此,1971年,著名学者TUKEY提出非线笥滤波器——中值滤波器,即把局部区域中灰度的中值作为输出灰度,并将其与统计学理论结合起来,使用迭代方法,比较理想地将图像从噪声中恢复出来,并且能保护图像的轮廓边界,不使其变模糊。

近年来,非线性滤波理论在机器视觉、医学成像、语音处理等领域有了广泛的应用,同时,也反过来促使该理论的研究向纵深方向发展。

3.3.3图像的数据编码和传输

数字图像的数据量是相当庞大的,一幅512*512个像素的数字图像的数据量为256K字节,若假设每秒传输25帧图像,则传输的信道速率为52.4M比特/秒。

高信道速率意味着高投资,也意味着普及难度的增加。

因此,传输过程中,对图像数据进行压缩显得非常重要。

数据的压缩主要通过图像数据的编码和变换压缩完成。

图像数据编码一般采用预测编码,即将图像数据的空间变化规律和序列变化规律用一个预测公式表示,如果知道了某一像素的前面各相邻像素值之后,可以用公式预测该像素值。

采用预测编码,一般只需传输图像数据的起始值和预测误差,因此可将8比特/像素压缩到2比特/像素。

变换压缩方法是将整幅图像分成一个个小的(一秀取8*8或16*16)数据块,再将这些数据块分类、变换、量化,从而构成自适应的变换压缩系统。

该方法可将一幅图像的数据压缩到为数不多的几十个特传输,在接收端再变换回去即可。

3.3.4边缘锐化

图像边缘锐化处理主要是加强图像中的轮廓边缘和细节,形成完整的物体边界,达到将物体从图像中分离出来或将表示同一物体表面的区域检测出来的目的。

它是早期视觉理论和算法中的基本问题,也是中期和后期视觉成败的重要因

素之一。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1