背景简述

在图像处理,我们知道经常把Laplace算子作为边缘检测之一,也是工程数学中常用的一种积分变换。本节主要介绍Laplacian 算子相关的知识。

基本理论

首先,拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性。一个二维图像函数的拉普拉斯变换是各向同性的二阶导数,定义为:

用更加形象的图像来解释,假设我们有一张一维图形。下图(a)中灰度值的”跃升”表示边缘的存在.如果使用一阶微分求导我们可以更加清晰的看到边缘”跃升”的存在(这里显示为高峰值)图(b); 如果在边缘部分求二阶导数会出现什么情况?,图(c)所示。(其图片和定义公式来源于http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/imgtrans/laplace_operator/laplace_operator.html)。

 

(a)                                                                                                          (b)

(c)

你会发现在一阶导数的极值位置,二阶导数为0。所以我们也可以用这个特点来作为检测图像边缘的方法。 但是, 二阶导数的0值不仅仅出现在边缘(它们也可能出现在无意义的位置),但是我们可以过滤掉这些点。

为了更适合于数字图像处理,将该方程表示为离散形式:

另外,拉普拉斯算子还可以表示成模板的形式,以便更好编程需要。如图1所示。

图1(a)表示离散拉普拉斯算子的模板,图1(b)表示其扩展模板,图1(c)则分别表示其他两种拉普拉斯的实现模板。从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置。但此算子却可用二次微分正峰和负峰之间的过零点来确定,对孤立点或端点更为敏感,因此特别适用于以突出图像中的孤立点、孤立线或线端点为目的的场合。同梯度算子一样,拉普拉斯算子也会增强图像中的噪声,有时用拉普拉斯算子进行边缘检测时,可将图像先进行平滑处理。

图像锐化处理的作用是使灰度反差增强,从而使模糊图像变得更加清晰。图像模糊的实质就是图像受到平均运算或积分运算,因此可以对图像进行逆运算,如微分运算能够突出图像细节,使图像变得更为清晰。由于拉普拉斯是一种微分算子,它的应用可增强图像中灰度突变的区域,减弱灰度的缓慢变化区域。因此,锐化处理可选择拉普拉斯算子对原图像进行处理,产生描述灰度突变的图像,再将拉普拉斯图像与原始图像叠加而产生锐化图像。拉普拉斯锐化的基本方法可以由下式表示:

这种简单的锐化方法既可以产生拉普拉斯锐化处理的效果,同时又能保留背景信息,将原始图像叠加到拉普拉斯变换的处理结果中去,可以使图像中的各灰度值得到保留,使灰度突变处的对比度得到增强,最终结果是在保留图像背景的前提下,突现出图像中小的细节信息。但其缺点是对图像中的某些边缘产生双重响应。

参考代码

OpenCV版Laplace算子

#include "cv.h"
#include "highgui.h"using namespace cv;int main(int argc, char* argv[])
{Mat src = imread("test.jpg");Mat dst;Laplacian(src,dst,src.depth());imwrite("laplacian.jpg",dst);imshow("dst",dst);waitKey();return 0;
}

OpenCV-Python版Laplacian

#coding=utf-8
import cv2
import numpy as np    img = cv2.imread("test.jpg", 0)
gray_lap = cv2.Laplacian(img,cv2.CV_16S,ksize = 3)
dst = cv2.convertScaleAbs(gray_lap)  cv2.imshow('laplacian',dst)
cv2.waitKey(0)
cv2.destroyAllWindows() 

OpenCV-Python版LaplaceOperater

import cv2
import numpy as np  kernel_size = 3
scale = 1
delta = 0
ddepth = cv2.CV_16S  img = cv2.imread('test.jpg')
img = cv2.GaussianBlur(img,(3,3),0)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  gray_lap = cv2.Laplacian(gray,ddepth,ksize = kernel_size,scale = scale,delta = delta)
dst = cv2.convertScaleAbs(gray_lap)  cv2.imshow('laplaceOperater',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出测试

原始图像所示:

OpenCV-Python版Laplacian输出图像所示:

OpenCV-Python版LaplaceOperater输出图像所示:

由图可以看出,将原始图像通过拉普拉斯变换后增强了图像中灰度突变处的对比度,使图像中小的细节部分得到增强并保留了图像的背景色调,使图像的细节比原始图像更加清晰。基于拉普拉斯变换的图像增强已成为图像锐化处理的基本工具。

参考文献

[1] Milan Sonka ,Vaclav Hlavac, Roger Boyle, "Image Procssing ,analysis and Machine Vision".

[2] Richard Szelisi,"Computer Vision Algorithms and Applications".

关于Image Engineering & Computer Vision的更多讨论与交流,敬请关注本博和新浪微博songzi_tea.


差分近似图像导数算子之Laplace算子相关推荐

  1. 差分近似图像导数算子之Sobel算子

    背景引言 图像处理中,一个最基本并且最重要的卷积就是导数的计算,一般用来表达微分最常用的操作是Sobel算子,可以包含任意阶的微分以及融合偏导.主要用作为边缘检测.在技术上,它是一离散性差分算子,用来 ...

  2. python sobel算子_python自编程序实现——robert算子、sobel算子、Laplace算子进行图像边缘提取...

    实现思路: 1,将传进来的图片矩阵用算子进行卷积求和(卷积和取绝对值) 2,用新的矩阵(与原图一样大小)去接收每次的卷积和的值 3,卷积图片所有的像素点后,把新的矩阵数据类型转化为uint8 注意: ...

  3. 数字图像处理第三章边缘检测(Sobel算子、Laplace算子)

    边缘 边缘(edge)是指图像局部强度变化最显著的部分.主要存在于目标与目标.目标与背景.区域与区域(包括不同色彩)之间,是图像分割.纹理特征和形状特征等图像分析的重要基础. 边缘检测概念 1.边缘检 ...

  4. 拉普拉斯噪声公式_高斯拉普拉斯算子(Laplace of Gaussian)

    高斯拉普拉斯(Laplace of Gaussian) Laplace算子作为一种优秀的边缘检测算子,在边缘检测中得到了广泛的应用.该方法通过对图像 求图像的二阶倒数的零交叉点来实现边缘的检测,公式表 ...

  5. 【OpenCV 】Sobel 导数/Laplace 算子/Canny 边缘检测

    canny边缘检测见OpenCV [七]----边缘提取算子(图像边缘提取)--canny算法的原理及实现 1 Sobel 导数 1.1.1 原因 上面两节我们已经学习了卷积操作.一个最重要的卷积运算 ...

  6. 图像处理中的梯度、导数如何求?(Robert算子,Sobel算子,Prewitt算子,Laplace算子)

    梯度的求法是多种多样的,根据不同的处理需要选择合适的算子(模版). 1.水平垂直差分法 2.Robert 梯度算子 3.Sobel算子               垂直方向               ...

  7. 计算机视觉(三):基于Scipy图像处理技术,图像模糊(灰色、彩色图像高斯模糊)、图像导数(sobel算子滤波)

    文章目录 一.scipy方法实现图像模糊 1.灰度图像模糊 2.彩色图像模糊 二.图像导数 1.梯度的计算 2.导数的计算 一.scipy方法实现图像模糊 小花今天和我说:"她想要一种朦胧美 ...

  8. 拉普拉斯算子属于卷积方法吗_二维图像中的Laplace算子和图论中的Laplacian矩阵...

    最近在阅读 如何理解 Graph Convolutional Network(GCN)?​www.zhihu.com 接触到了图论中的Laplacian矩阵,定义为 , 是Laplacian矩阵, 是 ...

  9. 【数字图像处理】图像直方图均衡化、空域滤波(均值滤波、中值滤波)、图像锐化(Laplace算子)、图像傅里叶变换实验

    图像直方图均衡化.空域滤波.图像锐化.图像傅里叶变换 一.图像直方图均衡化 二.图像空域滤波 1.均值滤波(滤波次数n→3) 2.中值滤波(滤波次数n→3) 3.图像锐化(Laplace算子) 三.图 ...

最新文章

  1. java jar 和 war 包的区别
  2. java线程系列---类中的定时器Timer
  3. fseek linux 大文件_一文搞懂Linux系统开发
  4. postman导入swagger文档,并设置cookies进行测试
  5. 解决JDBC连接mysql时server time zone问题及com.mysql.jdbc.Driver is deprecated
  6. Anaconda管理多版本的python环境
  7. linux定时器时间间隔为0,linux下定时器的使用--timer_create等系列
  8. node sqlite 插入数据_方便且实用,Python内置的轻量级数据库实操
  9. 全国计算机二级个考生自定义,全国计算机二级考试《C++》强化试题及答案
  10. C# 异步工具类 及一点小小的重构经验
  11. FastDFS简单介绍
  12. stdafx.h头文件代码
  13. 区块链将成为互联网基础协议,类似于TCP/IP、HTTP
  14. 急需你的意见:句子迷图文日签投票
  15. 小米手机开机自启动软件及定时开关机
  16. Unity中图片挖洞
  17. 怎么打开Win10系统的文件夹选项?
  18. gym库的基本使用方法
  19. 大学生毕业后想成为产品经理?那你得先从以下几个方面入手!
  20. void*的用法【转】

热门文章

  1. tf.range用法
  2. 做技术,有没有必要参加IT培训
  3. 用Python做数据商品情感分析(商品评论数据情感分析)
  4. CentOS8安装Git客户端
  5. 以非root权限启动nginx
  6. ubuntu Linux多个内核选择
  7. 如何下载spring(所有版本)
  8. Mybatis什么时候需要声明jdbcType?
  9. 达梦数据库的主要数据类型
  10. CCF NOI1053. 相似度