概述
定义:拉普拉斯算子是n维欧几里德空间中的一个二阶微分算子,是用二阶差分来计算图像的边缘。
拉普拉斯算子是一种各向同性微分算子,它具有旋转不变性。
laplace算子是一种高通滤波器,用来保留图像的高频分量(变化剧烈的部分),抑制图像的低频分量(变化缓慢的部分),所以可以用来检测边缘。
拉普拉斯算子 (Laplace) 作用:
1.对图像进行边缘检测;
2.锐化图像;
3.判断模糊。
二阶差分
一阶差分可以检测边缘存在的可能性,是把灰度变化的区域找出来,检测边缘是否存在。
二阶差分能确定边缘的存在性,是把灰度值变化的拐点找出来,确定边缘的位置。
算子模板
应用原理
利用函数模板可以把图像中的奇异点如亮点变得更亮,对于图像中灰度变化剧烈的区域,该算子能实现其边缘检测。
该算子利用二阶微分特性和峰值间的过零点来判断边缘位置,对边界点更为敏感,常用于锐化图像。
锐化:产生的灰度突变的图像和原始图像叠加,既能产生锐化突变的边缘,又能保留背景信息。
python代码实现
def laplace(img):
h, w = img.shape
new_image = np.zeros((h, w))
# operator = np.array([[0, -1, 0], [-1, 4, -1], [0, -1, 0]])
operator = np.array([[1,1,1],[1,-8,1],[1,1,1]])
for i in range(1, h-1):
for j in range(1, w-1):
new_image[i, j] = abs(np.sum(img[i-1:i+2, j-1:j+2] * operator))
return np.uint8(new_image)
opencv代码
gray_lap = cv2.Laplacian(img,cv2.CV_16S,ksize = 3)
# 转回uint8
dst = cv2.convertScaleAbs(gray_lap)