科学网

 找回密码
  注册

tag 标签: 频域滤波

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

频域滤波补零延拓及滤波器循环移位例析
热度 1 zmpenguestc 2017-11-12 13:55
频域滤波补零延拓及滤波器循环移位例析 文/彭真明 由于时域滤波属于有限序列的线性卷积,频域滤波方式实际上是利用离散傅里叶变换( DFT )求时域线性卷积的过程,而 DFT 本质上是对应时域滤波中针对周期序列的循环卷积。因此,频域滤波中信号及滤波器需要在时域进行补零延拓( padding ),且滤波器延拓后还要做循环移位( circularly shift )。 利用时域线性卷积滤波,滤波器与信号长度可以不一致。设 信号: x = ,长度为 m = 5 。 滤波器: h = ,长度为 n = 3 。 时域线性卷积为: y = conv(x,h) = 去掉边界元素: y =conv(x,h,’same’) = 以上则为时域滤波结果。 如果做时域循环卷积,则滤波器 h 与信号 x 长度必须保持一致,且长度 L≥m+n–1 。本例中,两者长度至少为 7 。采用补零延拓方法,即 xp = hp = 时域循环卷积为: yp = conv(xp,hp) = 取主值序列有: yp(1:7) = 可以看出,循环卷积可以求出线性卷积的结果。 由于循环卷积可以利用 DFT 在频域实现,即 yf = real(ifft(fft(xp).*fft(hp))) = 去掉边界元素,得到滤波结果为: yf = yf(1:5) = 这与空域结果不一致。实际上, yf(2:6) 才是一致的。 为了从起始点截取滤波结果的有效值,对滤波器补零延拓后的 hp 做循环移位,有 hp = 此时,频域滤波结果为: yf = real(ifft(fft(xp).*fft(hp))) = 去掉边界元素,最后得到频域滤波结果为: yf = yf(1:5) = 可以看出,与空域线性卷积完全保持一致。 实际应用中,为了便于提升 FFT 的计算效率,频域滤波常将信号及滤波器延拓至信号的 2 倍长度,或 2 的整数幂。 相关博文 : 如何保持空域与频域滤波结果的一致性 如何保持空域与频域滤波结果的一致性(续)
个人分类: 闻图思学|28712 次阅读|2 个评论
频域Laplacian图像锐化原理及实现
zmpenguestc 2017-4-22 13:05
一幅图像 f 的空域拉普拉斯( Laplacian )算子如下式 (1),即 : 利用傅里叶变换的微分性质,可以推导出对应的频域 Laplacian 滤波器如下式 (2) ,即 其中, u = 0,1,2,…, M -1; v = 0,1,2,…, N -1, 为频率变量。 M , N 为输入图像 f 的尺寸。 对应的中心化滤波器如下 式 (3) : 其中, P, Q 为滤波器 H 的尺寸。一般取, P = 2 M , Q = 2 N 。 要实现图像 f 的锐化,需对 f 做傅里叶变换,然后利用 H 进行频域 Laplacian 滤波,按以下 式 (4) 反变换求得其空域 Laplacian 图,即 其中, F ( u , v ) 为输入图像 f ( x ,y) 的傅里叶变换,符号Ξ -1 代表傅里叶反变换 。 按以下 式 (5), 将傅里叶反变换得到的 Laplacian 图叠加于原始图像 f ,即 因▽ 2 f ( x , y ) 存在 负值,故 取 c =-1 ,从而实现对原始图像 f 的锐化。由于 Laplacian滤波结果存在黑、白两类轮廓细节, 这样做主要是强化弱边缘,弱化了强边缘,使得锐化图像看起来比较自然,更适合于人眼观察。 Laplacian 锐化的本质,即在原图像上叠加 Laplacian 滤波的高频(细节)成分,使得图像边缘轮廓更清晰。 尽管以上原理看似很简单, 所有教材上也都是这么表述的。但真正自己编写程序代码实现时,还是问题不少。主要表现在以下三个环节: 1 )傅里叶反变换得到 ▽ 2 f ( x , y ) 的值的数量级要比 f 大几个数量级,因此,存在比例缩放( Scaling )问题。 2 )叠加高频细节后的图 g ,改变了原始 f 的值域范围,并同样存在负值。如果对 g 简单 使用 归一化处理,将最小值映射为0,最大值映射为1,可能会改变整幅图像 g 的对比度,显示时看起来整个图将变暗(与输入图像 f 对比)。这并不是我们期望看到的结果。 3 )频域滤波中会出现边界效应,导致图像的边界也会被锐化。 解决以上三个问题的对应办法是: 1 )傅里叶变换前,对 f 先做归一化处理,使 f 的值的范围在 ;把式 ( 4) 求得的 Laplacian 结果除它(或绝对值)的最大值 max( ▽ 2 f ( x , y )) ,使得其值控制在 范围。这样,二者才具有数值上的可比性。 2 )因 f 和 ▽ 2 f ( x , y )的叠加结果还可能超过 范围,强制类型转换或归一化到 ,会 使 锐化结果整体变亮或变暗。有效的措施,就是利用原始图像 f 的实际灰度值范围 对锐化结果 g 进行标定 ( Scaling ),再次调整其灰度范围,使它保持与 f 基本一致 。 3 )关于边界的处理问题,请参考前述博文(见: 如何保持空域与频域滤波结果的一致性 ) 。只不过直接从频域定义 H ,无法对应空域 h 的尺寸,一般对 f 进行边界的扩充时,适当增加重复边界数,可以得到比较理想的处理结果。因为 重复( ' replicate' )边界像素,不会产生额外边缘。 以上为正确实现频域锐化的关键问题及相应的解决措施。对于空域 Laplacian 锐化,尽管用于叠加的高频成分与原始图像灰度的量级相差要小一些,但要得到好的锐化效果,同样也存在以上问题。 以下是对输入的模糊 moon 图像 分别 进行 Laplacian空域(图1)和频域(图2)锐化的结果。可以看出,空间域和频率 域的锐化结果基本一致。若频域滤波器 H 由空域模板 h 计算产生,则锐化结果的一致性会更好。 图 1 空域 Laplacian 滤波及锐化结果 图 2 频域 Laplacian 滤波及锐化结果 根据以上原理实现图像锐化的MATLAB代码,请下载: myimlapsharp.rar 扫一扫,可关注“老马迷图”微信公众号! 相关博文: 如何保持空域与频域滤波结果的一致性(续)
个人分类: 闻图思学|36580 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-12 18:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部