【问题标题】:Create my custom kernel mat创建我的自定义内核垫
【发布时间】:2017-06-03 10:05:31
【问题描述】:

如何在 OpenCV Python 中创建自己的内核?

我正在尝试在下面创建一个 sobel 内核,但出现错误:

AttributeError: 'module' 对象没有属性 'mat'

def sobel(src):

    kernelX = [
        [ -1, 0, 1 ],
        [ -2, 0, 2 ],
        [ -1, 0, 1 ]
    ]

    kernelY = [
        [ -1, -2, -1 ],
        [  0,  0,  0 ],
        [  1,  2,  1 ]
    ]

    kernelXMat = cv2.mat(3, 3, cv2.cv2.CV_32FC1, kernelX)
    kernelYMat = cv2.mat(3, 3, cv2.CV_32FC1, kernelY)

    horizGradient = cv2.filter2D(src, -1, kernelXMat)
    vertGradient = cv2.filter2D(src, -1, kernelYMat)

    return [horizGradient, vertGradient]

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    OpenCV Mat 的 Python 等效项是 numpy.array。可以在 python 中按如下方式创建指定的内核。

    import numpy as np
    
    kernelXMat = np.array(kernelX, dtype=float);
    kernelYMat = np.array(kernelY, dtype=float);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2015-12-31
      • 2015-10-23
      • 2014-05-08
      • 2012-01-17
      相关资源
      最近更新 更多