【发布时间】:2019-09-20 09:50:09
【问题描述】:
我正在尝试在 Python 中移植一些 lua/torch 代码,有一个序列在图像上运行高斯模糊,如下所示:
local gauK = image.gaussian(math.ceil(3*sigma)*2+1, sigma)
inp = image.convolve(inp, gauK, 'same')
为了在我的方法中复制这一点,我一直在查看 cv2.GaussianBlur() 和 cv2.filter2D 并传入一个高斯内核。
方法一(cv2.GaussianBlur):
kernel_size = int(math.ceil(3 * sigma) * 2 + 1) # same size as the lua code
blurred_image = cv2.GaussianBlur(img, ksize=(kernel_size, kernel_size), sigma)
方法二(cv2.filter2D)
kernel_size = int(math.ceil(3 * sigma) * 2 + 1) # same size as the lua code
gaussian_kernel = cv2.getGaussianKernel(kernel_size, sigma)
blurred_image_2 = cv2.filter2D(img, -1, gaussian_kernel)
在方法 1 和方法 2 之间,我得到不同的图像。似乎方法 1 的图像比方法 2 中的图像更模糊。有什么原因我可能会在这里得到不同的结果吗?我试图找出哪一个会匹配 lua 代码。谢谢。
【问题讨论】: