具有特殊足迹的ndimage和过滤器

时间:2017-08-07 13:24:38

标签: python image-processing ndimage

我想编写一个算法来计算3D数组的3 * 3窗口中的元素总和,而不是窗口中心的值

例如,对于输入A:

A1 = np.array([[1,1,0],[0,0,0],[0,0,0]])
A2 = np.array([[0,0,0],[0,1,0],[0,0,0]])
A3 = np.array([[0,0,0],[0,0,0],[0,0,1]])
A = np.array ([A1,A2,A3])

我想获得输出B:

([[1,1,0],[0,0,0],[0,0,0]])
([[0,0,0],[0,3,0],[0,0,0]])
([[0,0,0],[0,0,0],[0,0,1]])

所以我写了这些代码

Neighborhood = np.ones((3,3,3))
Neighborhood[1,1,1]=0 # take off the center
B1 = scipy.ndimage.generic_filter(A,np.sum,footprint = Neighborhood, origin =(1,1,1) )
B2 = scipy.ndimage.convolve(A,Neighborhood)

但B1和B2都没有给出我想要的答案 你能帮我解决为什么以及如何解决它?

0 个答案:

没有答案