目录

一、基础理论

1、原理

2、过程

3、Laplacian函数

代码

效果

参考资料


一、基础理论

1、原理

Laplace算子作为边缘检测之一,和Sobel算子一样也是工程数学中常用的一种积分变换,属于空间锐化滤波操作。因为图像是二维的,所以需要在两个方向求导。

定义

拉普拉斯算子(Laplace Operator)是n维欧几里德空间中的一个二阶微分算子,定义为梯度(▽f)的散度(▽·f)。拉普拉斯算子也可以推广为定义在黎曼流形上的椭圆型算子,称为拉普拉斯-贝尔特拉米算子。

原理

拉普拉斯算子是二阶微分线性算子,在图像边缘处理中,二阶微分的边缘定位能力更强,锐化效果更好,因此在进行图像边缘处理时,直接采用二阶微分算子而不使用一阶微分

2、过程

1、一维一阶差分公式和二阶差分公式分别为:

2、在一个二维函数f(x,y)中,x,y两个方向的二阶差分分别为:

3、所以,Laplace算子差分形式为:

4、得到卷积核

5、扩展卷积核

该卷积核在上下左右四个90度的方向上结果相同,也就是说在90度方向上无方向性。为了让该卷积核在45度的方向上也能具有该性质,对它扩展定义:

3、Laplacian函数

C++:

void Laplacian(InputArray src, OutputArray dst, int ddepth, int ksize=1, double scale=1, double delta=0, int borderType=BORDER_DEFAULT )
Laplacian(src, dst, CV_16S, 3);                             //拉普拉斯变换//         深度        核大小

python:

# 2、Laplacian 算子
laplacian = cv.Laplacian(dst, cv.CV_64F)

代码

C++:

//拉普拉斯变换
#include<opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;Mat src, dst, abs_dst_laplace;int main()
{src = imread("Resource/test13.jpg");imshow("原图", src);//拉普拉斯变换Laplacian(src, dst, CV_16S, 3);                     //拉普拉斯变换//                          深度      核大小convertScaleAbs(dst, abs_dst_laplace);              //将类型转化为CV_8UC1imshow("laplacian", abs_dst_laplace);    waitKey(0);
}

python:

# 边缘检测(Sobel、Laplace、Canny)
import cv2 as cv# Laplace二阶微分算子
def Laplace():# 1、高斯滤波器 (3 X 3)dst = cv.GaussianBlur(img, (3, 3), sigmaX=0.1)#                           核大小  在X方向上的标准偏差# 2、Laplacian 算子laplacian = cv.Laplacian(dst, cv.CV_64F)# 3、取绝对值laplacian = cv.convertScaleAbs(laplacian)# 4、显示cv.imshow("laplacian", laplacian)if __name__ == '__main__':# 读取图片img = cv.imread("Resource/test5.jpg")cv.imshow("img", img)# Sobel()         #Sobel一阶微分算子Laplace()       #Laplace二阶微分算子cv.waitKey(0)

效果

参考资料

https://blog.csdn.net/hellocsz/article/details/102485387?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162899470416780357226662%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162899470416780357226662&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-102485387.ecpm_v1_rank_v29&utm_term=%E6%8B%89%E6%99%AE%E6%8B%89%E6%96%AF%E7%AE%97%E5%AD%90&spm=1018.2226.3001.4187

https://www.bilibili.com/video/BV1Fo4y1d7JL?p=34&spm_id_from=pageDriver

OpenCV(十六)边缘检测2 -- Laplace(拉普拉斯)二阶微分算子相关推荐

  1. 【OpenCV十六新手教程】OpenCV角检测Harris角点检测

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/29356187 作者:毛星云(浅墨) ...

  2. OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 拉普拉斯算子是最简单的各向同性二阶微分算子,具有 ...

  3. OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core OpenCV学习笔记(五十七)——在同一窗口显示多幅图片 OpenCV学习笔记(五十八)——读《Mast

    OpenCV学习笔记(五十六)--InputArray和OutputArray的那些事core 看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArray或者OutputArray ...

  4. 《OpenCv视觉之眼》Python图像处理十六:Opencv图像处理实战一之图像中的硬币检测

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  5. OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算

    OpenCV学习笔记(四十六)--FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术.在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用.这一次先介绍特征点检 ...

  6. OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC

    OpenCV学习笔记(三十六)--Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加 ...

  7. OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope

    OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...

  8. OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc

    OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...

  9. OpenCV学习笔记(十六):直方图均衡化:equalizeHist()

    OpenCV学习笔记(十六):直方图均匀化:equalizeHist() 参考博客: 直方图均衡化的数学原理 直方图匹配的数学原理 直方图均衡化广泛应用于图像增强中: 直方图均衡化处理的"中 ...

最新文章

  1. 如何启动linux上的svn服务
  2. 年轻人买菜只愿意走670米,每日优鲜、叮咚买菜等生鲜电商们依然“难送达”
  3. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
  4. boost::hana::fold用法的测试程序
  5. VirtualBox安装Centos6.8出现——E_INVALIDARG (0x80070057)
  6. linux下java基于UDP编程聊天_基于Linux下的UDP编程
  7. python写音乐_Python国产库推荐之musicpy:让你用代码来写音乐
  8. 〖Demo〗-- 模拟登录
  9. 最新可用快手极速版自动阅读薅羊毛autojs脚本
  10. java时钟代码_JAVA实现时钟
  11. docker复习:CVE-2016-10033验证
  12. Synchronized 可重入性粒度测试
  13. 如何使用Google的Draco项目
  14. 【codecademy笔记1】
  15. 最优传输论文(十七):Sinkhorn Distances: Lightspeed Computation of Optimal Transport论文原理
  16. 微信小程序地图实现标记多个位置
  17. 随手笔记之逆序输出数字
  18. 计算机操作系统(八)——并发程序设计
  19. DataGridView中某一行的某一列及当前行的选取方法(C#实现)
  20. Dev C++下载及使用

热门文章

  1. [CCC 2018] 平衡树
  2. 2017级面向对象程序设计 作业三
  3. SQL Server 插入含有中文字符串出现乱码现象的解决办法
  4. wampserver下升级php7
  5. 2022-2028年中国互联网+汽车行业深度调研及投资前景预测报告
  6. centos 安装 aria2 webui 实现网页下载
  7. [转载] 七龙珠第一部——第004话 掳人的妖怪——乌龙
  8. Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析
  9. 快速开发rails、==常用插件==
  10. 【转帖】OnPreRender Render的区别