python - 使用 python 将高斯模糊应用于图像

标签 python matplotlib

我正在尝试使用高斯滤波器(来自期刊的图像)复制图像的以下平滑处理: enter image description here

论文中说,为了从左图像到右图像,我必须应用值 x,y = 1,...,100 和 sigma = 14 的高斯滤波器以获得“最佳结果” "

我在 python 中开发了以下程序来尝试实现这种平滑:

import scipy.ndimage as ndimage
import matplotlib.pyplot as plt

img = ndimage.imread('left2.png')
img = ndimage.gaussian_filter(img, sigma=(14), order=0)
plt.imshow(img)
plt.show()

由于某些原因得到的结果与右图不相似。 有人可以指出我必须在程序中修改什么才能从左图像到右图像吗?

谢谢。

最佳答案

我来猜一猜:

因为他们提到他们的 x 和 y 值范围从 0-100,所以他们可能应用“sigma = 14 unit 模糊”而不是“sigma = 14 pixel 模糊”。

scipy.ndimage.gaussian_filter中的sigma参数是以像素为单位的。如果我对作者意图的理解是正确的,那么您需要缩放传入的 sigma 参数。

如果作者指定 xy 都在 0-100 之间,则 x 和 y 方向的 sigma 将不同,因为您的输入数据看起来有行数与列数不同(即它不是完美的正方形图像)。

也许尝试类似的东西?

nrows, ncols = img.shape
sigma = (14 * nrows / 100.0, 14 * ncols / 100.0)
img = ndimage.gaussian_filter(img, sigma=sigma)

关于python - 使用 python 将高斯模糊应用于图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29236249/

相关文章:

python - 用泊松函数拟合直方图

python - 当我提供更多数据点时,matplotlib tricontourf 问题

python - matplotlib 中的 "Segmentation Fault"运行示例 Librosa 脚本

python - Scrapy 跟随与正则表达式匹配的链接

python - 根据产品数量计算 PDF 中的页面

python - django + apscheduler - 如何配置 APScheduler 以使用 settings.py 中的 django db 连接数据?

python - 如何在 Mac 10.7 的 virtualenv 中安装 MatPlotLib

python - 为什么 datetime 函数会更改我字典中的值

python - Unicode 和区域设置问题

python - 点制 3D 表面的颜色