OpenCV-26 拉普拉斯算子

一、拉普拉斯算子概念及其推导

索贝尔算子是模拟一阶导数,一阶导数越大的地方说明变化越剧烈,越有可能是边缘。

OpenCV-26 拉普拉斯算子_第1张图片

但是如果我们对f(t)求二阶导数呢?

OpenCV-26 拉普拉斯算子_第2张图片

可以发现边缘处的二阶导数 = 0,因此,我们可以利用这一特性去寻找图像的边缘,但是,需要注意:二阶导数为0的位置也可能是无意义的位置。(一般为噪声)

以拉普拉斯算子推导过程

OpenCV-26 拉普拉斯算子_第3张图片

这样就得到了拉普拉斯算子的卷积核,即卷积模板。

二、拉普拉斯算子在Python中的使用

使用API---Laplacian(src,ddepth[,dst[,ksize[,scale[,delta[,boredType]]]])

1) 可以同时求两个方向的边缘.

2) 对噪声敏感,一般需要先进行去噪再调用拉普拉斯.

 示例代码如下:

import cv2
import numpy as np

img = cv2.imread("chess.png")
dst = cv2.Laplacian(img, -1, ksize=3)

cv2.imshow("img", np.hstack((img, dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果如下:

OpenCV-26 拉普拉斯算子_第4张图片

你可能感兴趣的:(OpenCV,opencv,人工智能,计算机视觉,均值算法,python)