gpt4 book ai didi

python - 为什么 scipy.ndimage 中的 generic_filter 从 opencv.Sobel 得到不同的结果

转载 作者:太空宇宙 更新时间:2023-11-03 23:08:43 25 4
gpt4 key购买 nike

下面是测试代码

    import numpy as np
import cv2
from scipy.ndimage import generic_filter
def sobel_x_filter(P):
return (P[2] + 2 * P[6] + P[7]) - (P[0] + 2 * P[3] + P[6])
matrix = np.ones((100, 100))
matrix[1, 2] = 2
cv2_result = cv2.Sobel(np.float32(matrix), cv2.CV_32F, 1, 0)
generic_filter_result = generic_filter(matrix, sobel_x_filter, (3, 3))

cv2_result[1, :][ 0., 2., 0., -2., 0., ..., 0.] ,

但是 generic_filter_result[1, :][0., 0., 0., -2., 0., 0., 0., ..., 0 .].

我很困惑为什么结果不同,我尝试将函数 generic_filter 中的 mode 参数更改为 mirrorwrap,还是和之前一样的结果,和cv2.Sobel

的结果不一致

最佳答案

我认为你的函数应该是这样的:

def sobel_x_filter(P):
return (P[2] + 2 * P[5] + P[8]) - (P[0] + 2 * P[3] + P[6])

关于python - 为什么 scipy.ndimage 中的 generic_filter 从 opencv.Sobel 得到不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54133727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com