WEB开发网
开发学院软件开发VC VC++实现对退化图像的恢复 阅读

VC++实现对退化图像的恢复

 2008-11-14 19:34:54 来源:WEB开发网   
核心提示: 至于二维傅立叶逆变换则基本上是上述过程的逆过程,在此就不再赘述,VC++实现对退化图像的恢复(4),根据逆滤波图像恢复的设计方案,先通过前面的二维傅立叶变换将退化图像g(x,y)从空域变换到频域得到G(u,v),维纳滤波处理维纳(Wiener)滤波是对退化图像进行恢复处理的另一种常用算法,

至于二维傅立叶逆变换则基本上是上述过程的逆过程,在此就不再赘述。根据逆滤波图像恢复的设计方案,先通过前面的二维傅立叶变换将退化图像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;i  for(int j=0;j   int k=(int)(j/3);
  D1=(float)sqrt(i*i+k*k);
  H=1.0f/(1+(D1/D0)*(D1/D0)); file://H(u,v)=1/(1+(u2+v2)/D02))
  if(H>0.45f){ file://阀值 d取0.45
   U[i*3*WN+j].Re/=H; file://在频域与M(u,v)相乘
   U[i*3*WN+j].Im/=H;
  }else{
   U[i*3*WN+j].Re*=0.6f; file://如未超过阀值则M(u,v)取常数k=0.6
   U[i*3*WN+j].Im*=0.6f;
  }
 }
}
dsp.DFT_2D_IFFT(m_cpBuffer+54,m_nWidth,m_nHeight,U); file://进行傅立叶逆变换

这里的逆滤波处理算法采用的是经过改进的恢复转移函数M(u,v),因此恢复后的图像不会出现振铃现象。以标准检测图像Lina为处理对象应用以上恢复处理算法,效果如下图所示。其中间图像为未经过改进的简单算法,在胳膊和脸部存在较明显的振铃现象,而采取了改进措施的图像则没有任何振铃现象出现,图像得到了较好的恢复。

VC++实现对退化图像的恢复

维纳滤波处理

维纳(Wiener)滤波是对退化图像进行恢复处理的另一种常用算法,是一种有约束的恢复处理方法,其采用的维纳滤波器是一种最小均方误差滤波器,其数学形式比较复杂:

上一页  1 2 3 4 5  下一页

Tags:VC 实现 退化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接