本节是图像去噪的下篇,将介绍几种有代表性的图像去噪技术,包括基于带阻滤波器去除周期噪声,基于维纳滤波频域方法和总变分方法的去噪技术等。所选方法在Skimage或SciPy中均提供上述方法的实现函数。
7.5 高级图像去噪方法
7.5.1 频域滤波去除周期噪声
前面介绍的高斯白噪声在频域内是占满整个频域,因此单独使用某一类频域滤波器是无法完全去除高斯白噪声的。对于在频域占据特定频段的噪声,比如周期噪声情况。
周期噪声(Periodic Noise)一般产生于图像采集过程中的电气或电机的干扰,表现为图像中周期性的冲击,如下图所示:
周期噪声实例(来自网络)
(a)带阻滤波器
SciPy使用scipy.signal.butter函数可以完成Buttrtworth型的低通、高通、带通和带阻等类型的频域滤波器
(b)陷波器
scipy.signal.iirnotch(w0, Q, fs=2.0)
scipy.signal.butter(N, Wn, btype='low', analog=False, output='ba', fs=None)
7.5.2 维纳滤波去噪
Skimage使用skimage.restoration.wiener函数实现维纳
skimage.restoration.wiener(image, psf, balance, reg=None, is_real=True, clip=True)
7.5.3 非局部均值滤波去噪
Skimage使用denoise_nl_means函数完成(Non-local mean)
skimage.restoration.denoise_nl_means(image, patch_size, patch_distance, h, fast_mode, sigma, preserve_range, channel_axis)
7.5.4 基于总变分的去噪
Skimage使用skimage.restoration.denoise_tv_chambolle函数完成总变分方法
skimage.restoration.denoise_tv_chambolle(image, weight, eps, max_num_iter, channel_axis)
(未完待续)
(欢迎对DIP+python算法开发感兴趣的初学者,尤其是相关专业本科和低年级研究生关注,本专栏完将持续更新,总篇数不会少于50篇,每篇不会少于5000字,专栏完成之前(差不多到2024年5月份)完全免费阅读,敬请关注)