python - 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 图像:
如果我要将它导入 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')
你会注意到一些事情,边缘在两个方向上都没有被均匀地检测到。圆圈的左侧和右侧看起来与顶部和底部不同。这不是预期的,因为这应该是二维分析。因此,如果我在分析之前转置图像,然后再转置到原始位置,它应该看起来是一样的。但显然它没有:
对于典型的 gaussian_laplace,我需要指定对分析进行卷积的内核的大小。然而,这里似乎没有这样的价值。也许如果我弄清楚如何指定内核,那么我可以弄清楚为什么分析在不同方向上是不同的?
我希望这种分析应该对圆形输入进行大部分均匀的边缘检测。可以理解的是,我会在圆圈的右上角、左上角、左下角和右下角看到伪影,但在我看到的圆圈的顶部和底部却没有。
谢谢你的帮助!
解决方案
推荐阅读
- firebase - 文档 ID 上的 Firestore 集合组查询
- linux - 为什么 Git 在同时执行多个实例时会出现错误“资源暂时不可用(代码:11)”?
- html - 菜单栏与内容重叠
- c# - 如何检查场景是否已加载不要再次加载?
- django - 避免使用 Django REST Framework 在多个 SerializeMethodFields 中重复查询
- android - Android Jetpack Compose + OKHttp
- c++ - 非常简单的可变参数函数的问题
- reactjs - React 三纤维,使用动态纹理
- websocket - 如果 WebSocket 帧数据中 PAYLOAD_LENGTH 为 126,如何计算 EXTENDED_PAYLOAD_LENGTH?
- sql - Redshift sql根据某个记录之前的时间戳识别记录