Laplacian算子

2022-05-28 16:16:23 浏览数 (1)

代码语言:javascript复制
import cv2
o=cv2.imread('C:/Users/xpp/Desktop/Lena.png',cv2.IMREAD_GRAYSCALE)#原始图像
Laplacian=cv2.Laplacian(o,cv2.CV_64F)#Laplacian算子
Laplacian=cv2.convertScaleAbs(Laplacian)#计算结果取绝对值
cv2.imshow("original",o)
cv2.imshow("Laplacian",Laplacian)
cv2.waitKey()
cv2.destroyAllWindows()

算法:Laplacian(拉普拉斯)算子是二阶导数算子,具有旋转不变性,没有边缘的方向信息,双倍加强噪声对图像的影响。通常情况下,Laplacian算子的系数之和为零。

P5lap=(P2 P4 P6 P8)-4xP5

Sobel算子=|左-右|/|下-上| Scharr算子=|左-右|/|下-上|

Laplacian算子=|左-右| |左-右| |下-上| |下-上|

  • 非边界(梯度值小,边缘不明显): P5lap=(94 80 92 85)-4x88=-1
  • 边界(梯度值大,边缘较明显): P5lap=(200 204 175 158)-4x88=385
  • 边界(梯度值大,边缘较明显): P5lap=(20 24 17 15)-4x88=-276

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

  • src表示输入图像
  • ddepth表示输出图像的深度
  • ksize表示Laplacian核的大小
  • scale表示计算Laplacian值所采用的缩放因子,默认值是1,可选参数
  • delta表示加到输出图像的值,默认值是0,可选参数
  • borderType表示边界样式

注意:Laplacian算子类似二阶Sobel导数,计算两个方向的梯度值。ksize的值是正的奇数值。

0 人点赞