2017-06-03 59 views
0

如何在OpenCV Python中創建自己的內核?創建自定義內核墊

我試圖創建下面索貝爾內核,但我得到的錯誤:

AttributeError: 'module' object has no attribute '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] 

回答

2

Python的等價的OpenCV Mat的是numpy.array。指定的內核可以在python中按如下方式創建。

import numpy as np 

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