【问题标题】:cv2.Laplacian vs cv2.filter2d - Different resultscv2.Laplacian vs cv2.filter2d - 不同的结果
【发布时间】:2020-06-17 08:57:01
【问题描述】:

我正在尝试将我的灰度图像与各种过滤器进行卷积。我用过

cv2.Laplacian(gray, cv2.CV_64F)

kernel =np.array([[0, 1, 0] , [1, -4, 1] , [0, 1, 0]])
dst = cv2.filter2D(gray, -1, kernel)

但结果不同。

谁能详细说明为什么我会得到不同的结果?

【问题讨论】:

    标签: python-3.x opencv computer-vision convolution laplacian


    【解决方案1】:

    由于cv2.Laplacian 的实现在这种情况下所做的正是与您所做的[[0, 1, 0], [1, -4, 1], [0, 1, 0]] 过滤器进行卷积,看来可能的罪魁祸首是您提供给cv2.Filter2D 的数据类型。

    通过使用此代码

    kernel = np.array([[0, 1, 0] , [1, -4, 1] , [0, 1, 0]])
    dst1 = cv2.filter2D(im, ddepth=cv2.CV_64F, kernel=kernel)
    dst2 = cv2.Laplacian(im, cv2.CV_64F)
    

    你应该得到

    >>> np.all(dst1==dst2)
    True
    

    【讨论】:

      猜你喜欢
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 2013-12-09
      相关资源
      最近更新 更多