(哈里斯角检测器)如何将其写入方程(仅使用numpy)

2024-09-27 02:26:45 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码(有4个部分,这一部分是find_corner部分):

padded_size = window_size//2
padded_image = np.pad(image, padded_size, 'edge')
Ix, Iy = partial_derivative(padded_image)
Ixx = Ix**2
Ixy = Iy*Ix
Iyy = Iy**2
    
height, width = image.shape
output = np.zeros(image.shape)
    
for y in range(output.shape[0]):
    for x in range(output.shape[1]):
        m = np.array([[Ixx[y,x],Ixy[y,x]],[Ixy[y,x],Iyy[y,x]]])
        output[y,x] = np.linalg.det(m) - k*(np.trace(m)**2)

return output

我认为我的代码在变量m处是错误的 因为它必须是Ixx,Ixy,Iyy的和 根据这个pic但我不知道如何把它写成方程 请帮帮我


Tags: 代码inimageforoutputsizenprange
1条回答
网友
1楼 · 发布于 2024-09-27 02:26:45

我想你应该试试这个

height, width = image.shape
output = np.zeros(image.shape)
for y in range(height):
    for x in range(width):
        Sxx = np.sum(Ixx[y:y+window_size, x:x+window_size])
        Sxy = np.sum(Ixy[y:y+window_size, x:x+window_size])
        Syy = np.sum(Iyy[y:y+window_size, x:x+window_size])
        M = np.array([[Sxx,Sxy],[Sxy,Syy]])
        det=np.linalg.det(M)
        trace=np.matrix.trace(M)
        R=det-k*(trace**2)
        output[y, x] = R

return output

相关问题 更多 >

    热门问题