用法:
cucim.skimage.restoration.wiener(image, psf, balance, reg=None, is_real=True, clip=True)
Wiener-Hunt去卷积
使用 Wiener-Hunt 方法(即傅里叶对角化)返回反卷积。
- image:(M, N) ndarray
输入降级图像
- psf:ndarray
点扩散函数。如果数据类型为实数,则假定为脉冲响应(输入图像空间),如果数据类型为复数,则假定为传递函数(傅立叶空间)。对脉冲响应的形状没有限制。如果
is_real is True
,则传递函数的形状必须为(M, N)
,否则为(M, N // 2 + 1)
(参见cupy.fft.rfftn
)。- balance:浮点数
调整改善频率恢复的数据充分性和减少频率恢复的先验充分性之间的平衡的正则化参数值(以避免噪声伪影)。
- reg:ndarray,可选
正则化运算符。默认为拉普拉斯算子。对于 psf,它可以是脉冲响应或传递函数。形状约束与
psf
参数相同。- is_real:布尔值,可选
默认为真。指定
psf
和reg
是否提供厄米假设,即仅提供一半频率平面(由于实信号傅里叶变换的冗余)。仅当psf
和/或reg
作为传递函数提供时才适用。对于厄米特属性,请参见uft
模块或cupy.fft.rfftn
。- clip:布尔值,可选
默认为真。如果为 True,则结果的像素值高于 1 或低于 -1 以实现 skimage 管道兼容性的阈值。
- im_deconv:(M, N) ndarray
去卷积的图像。
参数:
返回:
注意:
此函数通过脉冲响应(或 PSF)将维纳滤波器应用于噪声和退化的图像。如果数据模型是
其中 是噪声, 是PSF, 是未知的原始图像,维纳滤波器是
其中 和 分别是傅里叶变换和傅里叶逆变换, 是传递函数(或PSF的傅里叶变换,见下文[Hunt]), 是惩罚恢复图像频率的滤波器(默认为拉普拉斯算子,即高频惩罚)。参数 调整数据(倾向于增加高频,甚至来自噪声的数据)和正则化之间的平衡。
然后,这些方法特定于先前的模型。因此,应用程序或真实图像性质必须与先验模型相对应。默认情况下,先验模型(拉普拉斯算子)引入图像平滑度或像素相关性。它也可以解释为high-frequency 惩罚,以补偿解相对于数据的不稳定性(有时称为噪声放大或“explosive” 解)。
最后,傅立叶空间的使用暗示了 的循环属性,参见[Hunt]。
参考:
- 1
François Orieux, Jean-François Giovannelli, and Thomas Rodet, “Bayesian estimation of regularization and point spread function parameters for Wiener-Hunt deconvolution”, J. Opt. Soc. Am. A 27, 1593-1607 (2010)
https://www.osapublishing.org/josaa/abstract.cfm?URI=josaa-27-7-1593
- 2
B. R. Hunt “A matrix theory proof of the discrete convolution theorem”, IEEE Trans. on Audio and Electroacoustics, vol. au-19, no. 4, pp. 285-288, dec. 1971
例子:
>>> import cupy as cp >>> from skimage import color, data, restoration >>> img = color.rgb2gray(data.astronaut()) >>> from scipy.signal import convolve2d >>> psf = cp.ones((5, 5)) / 25 >>> img = convolve2d(img, psf, 'same') >>> img += 0.1 * img.std() * cp.random.standard_normal(img.shape) >>> deconvolved_img = restoration.wiener(img, psf, 1100)
相关用法
- Python cucim.skimage.restoration.richardson_lucy用法及代码示例
- Python cucim.skimage.restoration.calibrate_denoiser用法及代码示例
- Python cucim.skimage.restoration.unsupervised_wiener用法及代码示例
- Python cucim.skimage.restoration.denoise_tv_chambolle用法及代码示例
- Python cucim.skimage.registration.optical_flow_tvl1用法及代码示例
- Python cucim.skimage.feature.shape_index用法及代码示例
- Python cucim.skimage.filters.threshold_triangle用法及代码示例
- Python cucim.skimage.util.invert用法及代码示例
- Python cucim.skimage.data.binary_blobs用法及代码示例
- Python cucim.skimage.filters.roberts_neg_diag用法及代码示例
- Python cucim.skimage.color.lch2lab用法及代码示例
- Python cucim.skimage.measure.label用法及代码示例
- Python cucim.skimage.color.rgb2gray用法及代码示例
- Python cucim.skimage.filters.gabor用法及代码示例
- Python cucim.skimage.transform.rescale用法及代码示例
- Python cucim.skimage.filters.roberts_pos_diag用法及代码示例
- Python cucim.skimage.segmentation.random_walker用法及代码示例
- Python cucim.skimage.filters.roberts用法及代码示例
- Python cucim.skimage.morphology.dilation用法及代码示例
- Python cucim.skimage.feature.corner_foerstner用法及代码示例
- Python cucim.skimage.measure.moments_coords用法及代码示例
- Python cucim.skimage.filters.gabor_kernel用法及代码示例
- Python cucim.skimage.color.hsv2rgb用法及代码示例
- Python cucim.skimage.morphology.closing用法及代码示例
- Python cucim.skimage.color.rgb2hed用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cucim.skimage.restoration.wiener。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。