我想区分我的图像,首先是按行,然后分别按列。在
导数表示为f[i+1]-f[i],其中i是像素,f是该像素的值/强度。在
我被教导,这可以通过卷积来完成,用(1,0,-1)作为行向量的d/dx卷积,d/dy作为相同的向量,但以列的形式。在
我的问题是-在python中使用scipy.signal.consolve2d,使用mode='same',用这些向量进行卷积,得到的结果与数字差异一
比如说3x3矩阵:
5 4 3
2 1 1
3 2 5
用(1,0,-1)卷积得到
^{pr2}$而numpy的差异给了我:
-3 -3 -2
1 1 4
我的问题如下:
1.)当用核(1,0,-1)卷积NxN图像时,函数是否按向量卷积每一行?在
2.)为什么我的结果不同?我知道形状不同,numpy的结果有一行,但我可以理解,因为它不包括原始的第0行
def deriv(image):
"""
:param im: 2D image
:return: magnitude of the derivative
"""
#Horizontal Derivative
dx = convolve2d(im, DX, mode='same')
print('dx', dx)
#Vertical Derivative
dy = convolve2d(im, DY, mode='same')
print('dy', dy)
magnitude = np.sqrt(np.abs(dx)**TWO + np.abs(dy)**TWO)
return magnitude
这些指纹只是我在计算震级之前检查一下它们的数值。在
DX=(1,0,-1)
DY=(1,0,-1)作为列向量
目前没有回答
相关问题 更多 >
编程相关推荐