指数高通滤波器代码_高通滤波法、微分算子法、神经网络方法实现图像边缘检测...

本文探讨了多种图像边缘检测方法,包括高通滤波器(理想、Butterworth、指数)和微分算子(Roberts、Sobel、Laplacian、Canny)。通过对比分析不同算法的滤波效果和抗噪声能力,发现Butterworth和指数高通滤波器在去除振铃现象方面优于理想高通滤波器,而Canny算子在噪声环境下表现最佳。同时,介绍了HED算法在深度学习边缘检测中的优势。
摘要由CSDN通过智能技术生成

边缘检测(Edge detection)是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。本文使用多种不同的方法,实现对 Lena 肖像的边缘检测,研究分析各算法的效果和优缺点。所涉及的方法如下:

高通滤波法

理想高通滤波器

Butterworth 高通滤波器

指数高通滤波器

微分算子法

Roberts 算子

Sobel 算子

Laplacian 算子

Canny 算子

神经网络方法

HED 算法

高通滤波法

图像中的边缘或线条等细节部分与图像频谱的高频分量相对应,因此采用高通滤波让高频分量顺利通过,使图像的边缘或线条细节变得清楚,实现边缘提取和图像锐化。

常见的高通滤波器包括:理想高通滤波器、Butterworth 高通滤波器、指数高通滤波器等。

理想高通滤波器

理想高通滤波器的传递函数 \(H(u, v)\) 满足下式:

\[H(u,v) = \begin{cases} 1, &D(u,v)>D_0 \cr 0, &D(u,v) \leq D_0 \end{cases}

\]

理想高通滤波器只是一种理想状况下的滤波器,不能用实际的电子器件实现。

Butterworth 高通滤波器

Butterworth 高通滤波器的传递函数 \(H(u,v)\) 如下:

\[H(u,v)=\frac{1}{1+[D_0/D(u,v)]^{2n}}

\]

式中,\(n\) 为阶数,\(D_0\) 为截止频率。

Butterworth 高通滤波器在高低频率间的过渡比较平滑,所以由其得到的输出图像的振铃现象不明显。

指数高通滤波器

指数高通滤波器的传递函数 \(H(u,v)\) 如下:

\[H(u,v)=\exp\{-[\frac{D_0}{D(u,v)}]^n\}

\]

式中,变量 \(n\) 控制从原点算起的传递函数 \(H(u,v)\) 的增长率。

指数高通滤波器的另一种常用的传递函数如下式所示:

\[H(u,v)=\exp\{[\ln(\frac{1}{\sqrt 2})][\frac{D_0}{D(u,v)}]^n\}

\]

代码实现

为了在频率域中实现高通滤波,先通过傅里叶变换得到图像的频谱,根据不同滤波器的不同传递函数,对频率进行相应的过滤,最后再对其进行傅里叶反变换,得到滤波后的图像。

傅里叶变换

img = plt.imread('images/lena.bmp')

fft_shift = np.fft.fftshift(np.fft.fft2(img))# 变换后将零频分量移到频谱中心

fft_img = np.log(np.abs(fft_shift))# 可视化

实现三种滤波器

def distance(shape):# 计算每个像素到中心原点的距离

n, m = shape

u = np.arange(n)

v = np.arange(m)

u, v = np.meshgrid(u, v)

return np.sqrt((u - n//2)**2 + (v - m//2)**2)</

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值