OPENCV FOR PYTHON 学习笔记 - 图像梯度 Laplacian算子

Laplacian算子:类似于二阶sobel导数。实际上,在opencv中通过调用sobel算子来计算拉普拉斯算子。

Laplace函数实现的方法:先用Sobel 算子计算二阶 x 和 y 导数,再求和。

应用层面,我们先看与一下该函数的原型:

dst = cv2.Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]])

  

测试代码如下:

import cv2 as cv

img = cv.imread("lena.jpg",cv.IMREAD_UNCHANGED)
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_TRIANGLE)
cv.namedWindow("binary",cv.WINDOW_AUTOSIZE)
cv.imshow("binary",binary)

laplacian = cv.Laplacian(binary,cv.CV_64F);
laplacian = cv.convertScaleAbs(laplacian);
cv.namedWindow("laplacian",cv.WINDOW_AUTOSIZE)
cv.imshow("laplacian",laplacian)

cv.waitKey(0)
cv.destroyAllWindows()

 

拉普拉斯对噪声敏感,会产生双边效果,但是不能检测出边的方向。并且它不直接用于边的检测,只起辅助的角色,检测一个像素是在边的亮的一边还是暗的一边利用零跨越,确定边的位置。

posted @ 2021-08-19 17:22  HappyChen2016  阅读(409)  评论(0编辑  收藏  举报