图像反卷积#

在此示例中,我们使用维纳和无监督维纳算法对图像的噪声版本进行反卷积。这些算法基于线性模型,与非线性方法(如 TV 恢复)相比,无法恢复清晰的边缘,但速度快得多。

维纳滤波器#

基于 PSF(点扩散函数)、先验正则化(高频惩罚)和数据与先验充分性之间权衡的逆滤波器。正则化参数必须手动调整。

无监督维纳#

此算法具有基于数据学习的自调整正则化参数。这并不常见,并且基于以下出版物[1]。该算法基于迭代吉布斯采样器,该采样器交替绘制图像的后验条件律、噪声功率和图像频率功率的样本。

Data, Self tuned restoration
import numpy as np
import matplotlib.pyplot as plt

from skimage import color, data, restoration

rng = np.random.default_rng()

astro = color.rgb2gray(data.astronaut())
from scipy.signal import convolve2d as conv2

psf = np.ones((5, 5)) / 25
astro = conv2(astro, psf, 'same')
astro += 0.1 * astro.std() * rng.standard_normal(astro.shape)

deconvolved, _ = restoration.unsupervised_wiener(astro, psf)

fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(8, 5), sharex=True, sharey=True)

plt.gray()

ax[0].imshow(astro, vmin=deconvolved.min(), vmax=deconvolved.max())
ax[0].axis('off')
ax[0].set_title('Data')

ax[1].imshow(deconvolved)
ax[1].axis('off')
ax[1].set_title('Self tuned restoration')

fig.tight_layout()

plt.show()

脚本的总运行时间:(0 分钟 0.524 秒)

由 Sphinx-Gallery 生成的图库