上文简单讲述了一阶导数在边缘检测中的应用。而使用一阶导数进行边缘检测,往往会使得图像的细节丢失,那么此时,我们需要用到二阶导数来进行边缘检测,也就是拉普拉斯算子。
对于二维函数的导数求法如下:
可以近似如下:
于是我们得到对应的拉普拉斯滤波模板:
[ 0, 1, 0; 1, -4, 1; 0, 1, 0 ]
上述模板也可以写成:
[ 0, -1, 0; -1, 4, -1; 0, -1, 0 ]
<!--EndFragment--> openCV中拉普拉斯边缘检测的使用:
void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );
参数解释,与Sobel的应用是一致的。
实验结果:
laplace 3*3 边缘检测效果
一阶、二阶导数在边缘检测上的应用对比以及改进
(一)、(二)主要简单叙述了一下一阶导数、二阶导数在边缘检测上的应用,实际上也是对应的边缘检测的两种实现思路:1.基于查找法的边缘检测算法:通过寻找一阶导数中的最大值和最小值来检测边界,通常是将边界定位在梯度最大的方向,是基于一阶导数的边缘检测算法;2.基于零穿越检测的边缘检测算法:通过检测拉普拉斯零点来判断边缘,是基于二阶导数的边缘检测算法。
其实也很好理解,灰度图像中的边缘一定是变化相对比较剧烈的区域,那么这个区域灰度值的一阶导数便是取极大值或者极小值,对应的二阶导数自然是为0的。
通过比对,这个两种方法各有各自的优缺点:
1>一阶导数往往会产生较宽的边缘,而二阶导数对于软边缘来说产生较细的边缘,并且可能会产生双边缘
<!--EndFragment-->2>二阶导数对细节有较强的响应,如细线和孤立噪声点
<!--EndFragment-->3>二阶导数无法检测边缘的方向
(图片来源为百度文库http://www.docin.com/p-718682582.html)
如上图所示,从左至右分别代表阶跃性边缘、屋檐性边缘,也是应用场合碰的最多的两种边缘类型,其一阶、二阶导数图像给出。
拉普拉斯边缘检测的改进
对于拉普拉斯边缘检测,最让人头疼的是噪声的放大!所以,人们往往在使用Laplace边缘检测之前先使用高斯滤波,于是就得到了LoG边缘检测方法。虽然看上去很简单,但是却非常的实用。
相关推荐
赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...
赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...
赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...
赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...
OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib
基于opencv2.4.7和vs2010开发环境的图像处理,用于图像处理的边缘检测,其中用到了拉普拉斯算子,Scharr算子,检测所得图像为彩色。
opencv学习---运动目标(前景)检测
opencv-3.4.4-android-sdk/sdk/build.gradle opencv-3.4.4-android-sdk/sdk/etc opencv-3.4.4-android-sdk/sdk/java
博文《【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑》的配套详细注释源代码。 博文链接: http://blog.csdn.net/poem_qianmo/article/details/25560901 1.已将dll...
1.android 版的opencv-4.5.5 sdk; 2.含有opencv-contrib-4.5.5 扩展模块; 3.可以在android studio 中加载,通过java 层调用,也可以添加so库+头文件的方式在jni 层调用; 4.适用于arm64-v8a架构,即64bit cpu。
opencv3编程入门 勘误及配套源码 opencv3 OpenCV3-Intro-Book-Src-master
OpenCvSharp-4.0.0-x86 C# Opencv开发
已编译好的opencv资源
OpenCvSharp-4.5.2-20210405.rar
opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15 win64版,opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15,支持版本:python3.4,3.5,3.6
opencv-3.4.13-android-sdk .zip压缩包
# OpenCV-MinGW-Build MinGW version of OpenCV compiled on Windows. ## [OpenCV 3.4.1](https://github.com/huihut/OpenCV-MinGW-Build/tree/OpenCV-3.4.1) ``` git clone -b OpenCV-3.4.1 git@github....
opencv-4.3.0-vc14_vc15.exe opencv-4.5.5-vc14_vc15.exe opencv-4.7.0-windows.exe
opencv-4.6.0-android-sdk.zip
KD-Tree 开源实现以及 OpenCV KD-Tree 使用