我正在尝试在 python 中计算 3d sobel 过滤器。我有一个很好的二维图像代码,如下所示。
顺便提一句。我的原始图像是 uint8 类型。
preSobel = preSobel.astype('int32')
dx = ndimage.sobel(preSobel, 0) # horizontal derivative
dy = ndimage.sobel(preSobel, 1) # vertical derivative
mag = numpy.hypot(dx, dy) # magnitude
mag *= 255.0 / numpy.max(mag) # normalize (Q&D)
img[i,:,:]=mag
但是根据我对计算 2d 的wiki 页面的理解,我应该乘以 1d sobel 结果而不是hypot :confused
无论如何,要转到 3d,我想我需要在每个轴上计算 1d sobel,然后将所有相乘,但我不确定......那里有没有更快计算 3d sobel 的库?