Поскольку то, что делает реализация 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