全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VC+实现对退化图像的恢复摘要:本文以VC+ 6.0为编程工具,讲述了采取逆滤波和维纳滤波两种图像恢复算法对退化图像的恢复实现过程。引言图像恢复技术是图像处理领域一类重要的处理技术,与图像增强等其他基本图像处理技术类似,该技术也是以获取视觉质量得到某种程度改善为目的的,所不同的是图像恢复过程需要根据指定的图像退化模型来完成,根据这个退化模型对在某种情况下退化或恶化了的退化图像进行恢复,以获取到原始的、未经过退化的原始图像。换句话说,图像恢复的处理过程实际是对退化图像品质的提升,并通过图像品质的提升来达到图像在视觉上的改善。本文以VC+作为开发工具,讲述了对退化图像进行逆滤波和维纳滤波处理算法。逆滤波处理对图像进行恢复处理通常需要根据一定的图像退化模型来进行,一个简单的通用图像退化模型可将图像的退化过程模型化为一个作用在原始图像f(x,y)上的退化系统H,作用结果与一个加性噪声n(x,y)的联合作用导致产生出了退化图像g(x,y),表现为数学形式为g(x,y)=Hf(x,y)+n(x,y)。根据上述退化系统H可以从给定的退化图像g(x,y)得到原始图像f(x,y)的一个近似结果。逆滤波处理就是其中一种无约束恢复的图像恢复技术,其恢复过程的数学形式可表示为F (u,v)=G(u,v)/H(u,v) (u,v=0,1,M-1),其中F(u,v)和G(u,v)分别为图像f(x,y)和g(x,y)的频域变换,H(u,v)可看作是一个滤波函数。由于图像在退化过程中存在噪声的干扰,因此通常情况下的滤波器往往不是正好的1/H(u,v),而是关于u和v的某个非线形的恢复转移函数M(u,v)。经过以上的分析,图像的退化和恢复过程(模型)大致可用下图来表示:一种简便的恢复方法是在选取恢复转移函数M(u,v) 时,如果u2+v2w2,则取值1/H(u,v),否则为1。这样处理虽然简单,但是恢复后的图像往往存在较明显的振铃现象,通常为了消除振铃现象,以H(u,v)的值作为判据,如不大于d(0D1)则取常数值K(0K由于恢复过程需要在频域进行,因此需要通过二维傅立叶变换将图像由空域变换到频域。二维的傅立叶变换较一维傅立叶变换要复杂的多,一般采取连续2次运用一维离散快速傅立叶变换的方法来实现,即先沿f(x,y)的每一个x对y求变换再乘以N得到F(x,v),完成第一步变换。然后再将得到的F(x,v)沿f(x,v)的每一个v对x求变换即可得到f(x,y)的最终变换F(u,v),这两步的数学表达式如下:F(x,v)=N*(1/N)* f(x,y)exp-j2vy/N (v=0,1,N-1)F(u,v)=(1/N)* F(x,v)exp-j2ux/N (u,v=0,1,N-1) 类似也可以得出二维离散傅立叶变换逆变换用一维变换计算的表达式:F(x,v)= F(u,v)expj2ux/N (x,y=0,1,N-1)f(x,y)=(1/N)* F(x,v)expj2vy/N (y=0,1,N-1) 在分布进行一维傅立叶变换时,多采用蝴蝶图的快速算法(详见信号处理方面资料),其核心算法如下:int N=(int)pow(2,M); file:/N:序列长度(2的整数次幂)ReverseOrder(A,N); file:/对空间序列进行倒序for(int i=1;i=M;i+)int b=(int)pow(2,(i-1);for(int j=0;j=(b-1);j+) float p=(float)(pow(2,(M-i)*j*2.0*PI/(float)N);for(int k=j;k=(N-1);)float tr=(float)(Ak+b.Re*cos(p)+Ak+b.Im*sin(p); file:/计算复数运算A*Ufloat ti=(float)(Ak+b.Im*cos(p)-Ak+b.Re*sin(p);Ak+b.Re=Ak.Re-tr; file:/复数运算A-trAk+b.Im=Ak.Im-ti;Ak.Re+=tr; file:/复数运算A+trAk.Im+=ti;k+=b*2; 傅立叶逆变换的同傅立叶变换比较相似,只是在计算expj2vy/N时同正变换有符号的区别,以及在计算完成后逆变换需要将值除以N,因此不难写出一维傅立叶逆变换的实现代码。在进行二维傅立叶变换将图像由空域变换到频域之前,首先需要通过补0的手段将点数非2的整数次幂的非正方型网格采样构造为一个长宽均为2的整数次幂的正方型网格:int WM=(int)(log(W)/log(2)+1.0f); file:/计算图像宽应为2的多少次幂int HM=(int)(log(H)/log(2)+1.0f); file:/计算图像高应为2的多少次幂WM=HM=max(WM,HM); file:/取二者大值int WN=(int)pow(2,WM); file:/构造网格宽度int HN=(int)pow(2,HM); file:/构造网格高度forint i=0;i;for(int j=0;jif(iUi*WN*3+j.Re=Di*W*3+j; file:/D为图像序列Ui*WN*3+j.Im=0.0f;else file:/缺位补0Ui*WN*3+j.Re=Ui*WN*3+j.Im=0.0f; 预处理完毕后,可对构造网格的每一列分别进行一维快速傅立叶变换,并将结果存放在原位置,结果乘以N,完成第一步的转换,求得F(x,v):for(i=0;ifor(int j=0;jUHj.Re=Uj*WN*3+i.Re; UHj.Im=Uj*WN*3+i.Im; DFT_FFT(UH,HM); file:/对UH进行快速离散傅立叶变换for(j=0;jUj*WN*3+i.Re=HN*UHj.Re; file:/N=HNUj*WN*3+i.Im=HN*UHj.Im; 随即对构造网格的每一行进行傅立叶变换,得到最终的变换结果F(u,v):for(i=0;iHN;I+)for(int k=0;k3;k+) file:/对24位位图的R、G、B三分量均各自进行变换for(int j=0;jUWj.Re=Ui*WN*3+j*3+k.Re;UWj.Im=Ui*WN*3+j*3+k.Im; DFT_FFT(UW,WM); file:/对UW序列进行快速离散傅立叶变换for(j=0;jUi*WN*3+j*3+k.Re=UWj.Re;Ui*WN*3+j*3+k.Im=UWj.Im; 至于二维傅立叶逆变换则基本上是上述过程的逆过程,在此就不再赘述。根据逆滤波图像恢复的设计方案,先通过前面的二维傅立叶变换将退化图像g(x,y)从空域变换到频域得到G(u,v),然后在频域经过恢复转移函数M(u,v)的恢复处理并经过二维傅立叶逆变换将结果由频域转换回空域,就可得到经过恢复处理的近似原始图像:dsp.DFT_2D_FFT(m_cpBuffer+54,m_nWidth,m_nHeight,U); file:/进行二维傅立叶变换for(int i=0;iHN;I+)for(int j=0;j0.45f) file:/阀值 d取0.45Ui*3*WN+j.Re/=H; file:/在频域与M(u,v)相乘Ui*3*WN+j.Im/=H;elseUi*3*WN+j.Re*=0.6f; file:/如未超过阀值则M(u,v)取常数k=0.6Ui*3*WN+j.Im*=0.6f;dsp.DFT_2D_IFFT(m_cpBuffer+54,m_nWidth,m_nHeight,U); file:/进行傅立叶逆变换 这里的逆滤波处理算法采用的是经过改进的恢复转移函数M(u,v),因此恢复后的图像不会出现振铃现象。以标准检测图像Lina为处理对象应用以上恢复处理算法,效果如下图所示。其中间图像为未经过改进的简单算法,在胳膊和脸部存在较明显的振铃现象,而采取了改进措施的图像则没有任何振铃现象出现,图像得到了较好的恢复。维纳滤波处理维纳(Wiener)滤波是对退化图像进行恢复处理的另一种常用算法,是一种有约束的恢复处理方法,其采用的维纳滤波器是一种最小均方误差滤波器,其数学形式比较复杂:F(u,v)=(1/H(u,v)*(|H(u,v)|2)/(|H(u,v)|2+s*Sn(u,v)/Sf(u,v)*G(u,v)当s为1时,上式就是普通的维纳滤波;如果s为变量,则为参数维纳滤波,如果没有噪声干扰,即Sn(u,v)=0时,上式实际就是前面的逆滤波。从其数学形式可以看出:维纳滤波比逆滤波在对噪声的处理方面要强一些。以上只是理论上的数学形式,在进行实际处理时,往往不知道噪声函数Sn(u,v)和Sf(u,v)的分布情况,因此在实际应用时多用下式进行近似处理:F(u,v)=(1/H(u,v)* (|H(u,v)|2)/(|H(u,v)|2+K)*G(u,v)其中K是一个预先设定的常数。由此可以写出维纳滤波的实现代码: float K=0.05f; file:/预先设定常数Kdsp.DFT_2D_FFT(m_cpBuffer+54,m_nWidth,m_nHeight,U); file:/转换到频域for(int i=0;iHN;I+)for(int j=0;jint k=(int)(j/3);D1=(float)sqrt(i*i+k*k); float H=1.0f/(1+(D1/D0)*(D1/D0);/H(u,v)= 1/(1+(u2+v2)/D02)Ui*3*WN+j.Re=(Ui*3*WN+j.Re*H)/(H*H+K); file:/维纳滤波Ui*3*WN+j.Im=(Ui*3*WN+j.Im*H)/(H*H+K);dsp.DFT_2D_IFFT(m_cpBuffer+54,m_nWidth,m_nHeight,U);/返回到空域 对经过退化的Lina图像应用维纳滤波处理,可得到如右图所示的恢复效果图。由于维纳滤波在进行恢复时对噪声进行了处理,因此其恢复效果要比逆滤
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省成都龙泉第二中学2026届物理高一第一学期期末调研试题含解析
- 西安市东仪中学2025年高二上化学期末经典试题含解析
- 四川省德阳市第五中学2026届数学高一上期末考试试题含解析
- 铜铝杆生产工班组评比强化考核试卷含答案
- 新疆喀什第二中学2026届高二生物第一学期期末教学质量检测试题含解析
- 浙江省湖州市长兴县德清县安吉县2026届高二化学第一学期期末学业质量监测模拟试题含解析
- 公司医疗器械购销员现场作业技术规程
- 专业护理行业家庭护士岗位选拔策略及面试注意事项
- 医学面试实战技巧全攻略
- 工程合同外认价协议
- 【MOOC】颈肩腰腿痛中医防治-暨南大学 中国大学慕课MOOC答案
- 中华联合财产保险股份有限公司校招笔试题目
- 七年级上册生物2024-2025学年新人教版期末综合试卷(含答案)
- (2025)入团考试题目及答案
- 普通话实训与测试学习通超星期末考试答案章节答案2024年
- 2024秋国家开放大学《交通工程》形考任务1-4答案
- 电力电缆第二种工作票
- 交通事故死亡赔偿和解协议书
- DL-T5153-2014火力发电厂厂用电设计技术规程
- 2024中国中信金融资产管理股份有限公司广西分公司招聘笔试冲刺题(带答案解析)
- (正式版)JBT 7122-2024 交流真空接触器 基本要求
评论
0/150
提交评论