1

I am trying to convolve my grayscale image with various filters. I have used the

cv2.Laplacian(gray, cv2.CV_64F)

and

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

But the results are different.

Can someone elaborate why I am getting different results?

1 Answers1

1

Since what the implementation of cv2.Laplacian does in that case is exactly to convolve with the [[0, 1, 0], [1, -4, 1], [0, 1, 0]] filter as you do, it seems that the likely culprit is the datatype that your are feeding to cv2.Filter2D.

By using this code

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)

you should get

>>> np.all(dst1==dst2)
True
Ash
  • 4,611
  • 6
  • 27
  • 41