gpt4 book ai didi

python - 为什么高斯滤波器在 cv2 和 skimage 之间不同?

转载 作者:太空宇宙 更新时间:2023-11-03 22:00:25 25 4
gpt4 key购买 nike

我有一张图像,我将高斯模糊应用于同时使用 cv2.GaussianBlurskimage.gaussian_filter 库,但我得到的结果截然不同。我很好奇为什么,以及如何使 skimage 看起来更像 cv2。我知道 skimage.gaussian_filterscipy.scipy.ndimage.filters.gaussian_filter 的包装器。为了清楚地陈述问题,为什么这两个功能不同以及如何使它们更相似?

这是我的测试图片:

Original Image

这是 cv2 版本(看起来比较模糊):

cv2 image

这是 skimage/scipy 版本(看起来更清晰):

skimage version

详细信息:

skimage_response = skimage.filters.gaussian_filter(im, 2, multichannel=True, mode='reflect')

cv2_response = cv2.GaussianBlur(im, (33, 33), 2)

所以 sigma=2 并且过滤器的大小足够大,应该不会有什么不同。 Imagemagick covnert -gaussian-blur 0x2 在视觉上与 cv2 一致。

版本:cv2=2.4.10,skimage=0.11.3,scipy=0.13.3

最佳答案

如果有人对如何使 skimage.gaussian_filter() 与 Matlab 的等效 imgaussfilt() 相匹配(我发现这个问题的原因)感到好奇,请将参数“truncate=2”传递给 skimage.gaussian_filter()。 skimage 和 Matlab 都将内核大小计算为 sigma 的函数。 Matlab 的默认值是 2。Skimage 的默认值是 4,导致默认情况下内核大得多。

关于python - 为什么高斯滤波器在 cv2 和 skimage 之间不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36263738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com