首页 > 解决方案 > scipy.ndimage.gaussian_laplace 中出现意外结果。不正确的 2D 处理

问题描述

我正在尝试使用 gaussian_laplace 过滤器在 python 中处理图像,但我不知道如何指定内核。没有它,我认为分析无法正常工作。

我已经检查了标准文档(https://docs.scipy.org/doc/scipy-0.16.1/reference/generated/scipy.ndimage.filters.gaussian_laplace.html)但它没有说明指定内核

考虑以下 8 位灰度 TIF 图像:

https://imgur.com/nbfxWjB

如果我要将它导入 python 并在其上运行 gaussian_laplace 过滤器,sigma 为 4,我会得到以下结果:

from PIL import Image
from scipy.ndimage import gaussian_laplace
import numpy as np

file_path='White Spot.tif'
image_array=np.array(Image.open(file_path))
transformed=gaussian_laplace(image_array,4)
im = Image.fromarray(transformed)
im.save('transformed.TIF')

https://imgur.com/3mhpXI3

你会注意到一些事情,边缘在两个方向上都没有被均匀地检测到。圆圈的左侧和右侧看起来与顶部和底部不同。这不是预期的,因为这应该是二维分析。因此,如果我在分析之前转置图像,然后再转置到原始位置,它应该看起来是一样的。但显然它没有:

https://imgur.com/neZPDIM

对于典型的 gaussian_laplace,我需要指定对分析进行卷积的内核的大小。然而,这里似乎没有这样的价值。也许如果我弄清楚如何指定内核,那么我可以弄清楚为什么分析在不同方向上是不同的?

我希望这种分析应该对圆形输入进行大部分均匀的边缘检测。可以理解的是,我会在圆圈的右上角、左上角、左下角和右下角看到伪影,但在我看到的圆圈的顶部和底部却没有。

谢谢你的帮助!

标签: pythonimage-processingscipy

解决方案


推荐阅读