拉普拉斯算子Laplace

拉普拉斯算子Laplace

  • 概述
  • 二阶差分
  • 算子模板
  • 应用原理
  • python代码实现
  • opencv代码
  • 效果展示

概述

定义:拉普拉斯算子是n维欧几里德空间中的一个二阶微分算子,是用二阶差分来计算图像的边缘。
拉普拉斯算子是一种各向同性微分算子,它具有旋转不变性。

laplace算子是一种高通滤波器,用来保留图像的高频分量(变化剧烈的部分),抑制图像的低频分量(变化缓慢的部分),所以可以用来检测边缘。

拉普拉斯算子 (Laplace) 作用:
1.对图像进行边缘检测;
2.锐化图像;
3.判断模糊。

二阶差分

一阶差分可以检测边缘存在的可能性,是把灰度变化的区域找出来,检测边缘是否存在。
二阶差分能确定边缘的存在性,是把灰度值变化的拐点找出来,确定边缘的位置。
拉普拉斯算子Laplace_第1张图片

算子模板

拉普拉斯算子Laplace_第2张图片

应用原理

利用函数模板可以把图像中的奇异点如亮点变得更亮,对于图像中灰度变化剧烈的区域,该算子能实现其边缘检测。

该算子利用二阶微分特性和峰值间的过零点来判断边缘位置,对边界点更为敏感,常用于锐化图像。

锐化:产生的灰度突变的图像和原始图像叠加,既能产生锐化突变的边缘,又能保留背景信息。

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) 

效果展示

拉普拉斯算子Laplace_第3张图片

你可能感兴趣的:(图像处理)