用法:
skimage.filters.unsharp_mask(image, radius=1.0, amount=1.0, multichannel=False, preserve_range=False, *, channel_axis=None)
不锐化掩蔽滤镜。
清晰的细节被识别为原始图像与其模糊版本之间的差异。然后将这些细节缩放,并添加回原始图像。
- image:[P, ..., ]M[, N][, C] ndarray
输入图像。
- radius:标量或标量序列,可选
如果给定一个标量,那么它的值将用于所有维度。如果给出了序列,那么除了多通道图像的最后一个维度之外,每个维度都必须有一个半径。请注意,0 半径表示没有模糊,并且不允许使用负值。
- amount:标量,可选
细节将被这个因子放大。该因子可以为 0 或负数。通常,它是一个小的正数,例如1.0。
- multichannel:布尔型,可选
如果为真,最后一个
image
维度被视为颜色通道,否则视为空间。颜色通道是单独处理的。此参数已弃用:指定channel_axis反而。- preserve_range:布尔型,可选
是否保持原来的取值范围。否则,输入图像将根据
img_as_float
的约定进行转换。另见https://scikit-image.org/docs/dev/user_guide/data_types.html- channel_axis:int 或无,可选
如果为 None,则假定图像是灰度(单通道)图像。否则,此参数指示数组的哪个轴对应于通道。
- output:[P, ..., ]M[, N][, C] ndarray of float
应用了模糊蒙版的图像。
- multichannel:DEPRECATED
已弃用以支持channel_axis。
参数:
返回:
其他参数:
注意:
Unsharp masking 是一种图像锐化技术。它是一种线性图像操作,并且数值稳定,不像是ill-posed 问题的反卷积。由于这种稳定性,它通常比反卷积更受欢迎。
主要思想如下:锐利的细节被识别为原始图像与其模糊版本之间的差异。这些细节在缩放步骤后被添加回原始图像:
增强图像 = 原始 + 数量 *(原始 - 模糊)
将此滤镜单独应用于多个颜色层时,可能会发生颜色渗色。通过仅在适当的色彩空间(例如 HSV、HSL、YUV 或 YCbCr)中处理亮度/明度/强度通道,可以获得更视觉上令人愉悦的结果。
大多数介绍性数字图像处理书籍中都说明了锐化遮罩。此实现基于 [1] 。
参考:
- 1
Maria Petrou, Costas Petrou “Image Processing: The Fundamentals”, (2010), ed ii., page 357, ISBN 13: 9781119994398 DOI:10.1002/9781119994398
- 2
Wikipedia. Unsharp masking https://en.wikipedia.org/wiki/Unsharp_masking
例子:
>>> array = np.ones(shape=(5,5), dtype=np.uint8)*100 >>> array[2,2] = 120 >>> array array([[100, 100, 100, 100, 100], [100, 100, 100, 100, 100], [100, 100, 120, 100, 100], [100, 100, 100, 100, 100], [100, 100, 100, 100, 100]], dtype=uint8) >>> np.around(unsharp_mask(array, radius=0.5, amount=2),2) array([[0.39, 0.39, 0.39, 0.39, 0.39], [0.39, 0.39, 0.38, 0.39, 0.39], [0.39, 0.38, 0.53, 0.38, 0.39], [0.39, 0.39, 0.38, 0.39, 0.39], [0.39, 0.39, 0.39, 0.39, 0.39]])
>>> array = np.ones(shape=(5,5), dtype=np.int8)*100 >>> array[2,2] = 127 >>> np.around(unsharp_mask(array, radius=0.5, amount=2),2) array([[0.79, 0.79, 0.79, 0.79, 0.79], [0.79, 0.78, 0.75, 0.78, 0.79], [0.79, 0.75, 1. , 0.75, 0.79], [0.79, 0.78, 0.75, 0.78, 0.79], [0.79, 0.79, 0.79, 0.79, 0.79]])
>>> np.around(unsharp_mask(array, radius=0.5, amount=2, preserve_range=True), 2) array([[100. , 100. , 99.99, 100. , 100. ], [100. , 99.39, 95.48, 99.39, 100. ], [ 99.99, 95.48, 147.59, 95.48, 99.99], [100. , 99.39, 95.48, 99.39, 100. ], [100. , 100. , 99.99, 100. , 100. ]])
相关用法
- Python skimage.filters.rank.noise_filter用法及代码示例
- Python skimage.filters.gaussian用法及代码示例
- Python skimage.filters.threshold_otsu用法及代码示例
- Python skimage.filters.rank.sum用法及代码示例
- Python skimage.filters.window用法及代码示例
- Python skimage.filters.gabor用法及代码示例
- Python skimage.filters.rank.autolevel用法及代码示例
- Python skimage.filters.threshold_li用法及代码示例
- Python skimage.filters.rank.pop用法及代码示例
- Python skimage.filters.rank.mean用法及代码示例
- Python skimage.filters.rank.pop_bilateral用法及代码示例
- Python skimage.filters.rank.maximum用法及代码示例
- Python skimage.filters.roberts用法及代码示例
- Python skimage.filters.rank.equalize用法及代码示例
- Python skimage.filters.rank.enhance_contrast用法及代码示例
- Python skimage.filters.rank.gradient用法及代码示例
- Python skimage.filters.LPIFilter2D.__init__用法及代码示例
- Python skimage.filters.farid用法及代码示例
- Python skimage.filters.rank_order用法及代码示例
- Python skimage.filters.threshold_niblack用法及代码示例
注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.filters.unsharp_mask。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。