`

openCV入门----边缘检测(二):拉普拉斯算子

 
阅读更多

    上文简单讲述了一阶导数在边缘检测中的应用。而使用一阶导数进行边缘检测,往往会使得图像的细节丢失,那么此时,我们需要用到二阶导数来进行边缘检测,也就是拉普拉斯算子。

    对于二维函数的导数求法如下:
                                                   

    可以近似如下:
                                   

    于是我们得到对应的拉普拉斯滤波模板:

                  [ 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边缘检测方法。虽然看上去很简单,但是却非常的实用。

  • 大小: 2.5 KB
  • 大小: 3.9 KB
  • 大小: 147.8 KB
  • 大小: 53.5 KB
1
2
分享到:
评论

相关推荐

    Opencv-Python教程

    - 边缘检测方法,如Canny边缘检测、Sobel算子、拉普拉斯算子等 - 形态学操作,如腐蚀、膨胀、开运算和闭运算 5. Feature Detection and Description 特征检测和描述部分讲解了如何使用OpenCV进行特征检测和描述。该...

    opencv--ru-men.rar_Men!

    3. **图像滤波**:包括平滑滤波(均值滤波、高斯滤波)和锐化滤波(拉普拉斯算子、 Sobel算子),可消除噪声或突出边缘。 4. **特征检测**:如角点检测(Harris角点、SIFT、SURF)、边缘检测(Canny算法),这些在...

    机器视觉入门教程

    - LOG算子利用拉普拉斯算子来检测边缘。 5. **Hough圆与直线检测**: - Hough变换用于检测图像中的直线和圆。 #### 十、图像二值化 1. **全局阈值法**: - 全局阈值法是最简单的二值化方法之一。 2. **局部阈值...

    Opencv - python快速入门(csdn)————程序.pdf

    - **Laplacian 算子**:`cv.Laplacian()` 也可检测边缘,基于拉普拉斯算子。 - **Canny 边缘检测**:`cv.Canny()` 是一种多级边缘检测算法,能有效减少假边缘。 以上就是 OpenCV-Python 快速入门的主要内容,涵盖...

    OpenCV学习资料文档

    #### 第2章:OpenCV入门 - **开始准备**:介绍如何设置开发环境,以及推荐使用的开发工具。 - **显示图像**:通过简单的代码示例演示如何使用OpenCV加载并显示一张图片。 - **播放AVI视频**:详细介绍如何用OpenCV...

    visual C++图像处理入门小程序

    4. 拉普拉斯算子:拉普拉斯算子是最简单的二阶导数算子,它是所有方向上灰度值变化的总和。由于其对噪声敏感,通常会结合高斯滤波器预处理,形成Gaussian-Laplace算子,以提高边缘检测的稳定性。 在Visual C++中...

    opencv教材

    - **实现步骤**:说明使用OpenCV实现Canny边缘检测的具体步骤。 **3.11 Hough线变换** - **变换原理**:解释Hough线变换的基本原理。 - **应用案例**:展示如何使用Hough线变换检测图像中的直线。 **3.12 Hough圆...

    opencv_tutorials2.4.3

    - **边缘检测**:利用拉普拉斯算子检测图像中的边缘。 - **锐化效果**:增强图像细节,使边缘更加明显。 - **应用示例**:通过拉普拉斯算子进行边缘增强。 ##### 3.10 Canny 边缘检测器 - **双阈值算法**:使用两个...

    VC++图像处理基础

    - 邻域运算:基于周围像素的操作,如平滑滤波(高斯滤波)、锐化(拉普拉斯算子)。 - 轮廓检测和边缘检测:Canny算子、Sobel算子等,用于找到图像的边界。 6. 图像色彩空间转换: - RGB到灰度:通过特定公式将...

    java_digital_image_process_algorithm.rar_源码

    - 锐化:提高图像边缘的对比度,常用拉普拉斯算子或梯度算子。 3. **高级算法**: - 边缘检测:Canny边缘检测、Sobel边缘检测等,用于找出图像中的边界。 - 区域生长:通过种子点扩展,将具有相似特征的像素合并...

    OpenCV中文入门

    4. **边缘检测**:`laplace` 和 `edge` 提供了两种不同的边缘检测方法,前者基于拉普拉斯算子,后者通常指Canny边缘检测算法。 5. **图像处理例程**: - **分割**:`pyramid_segmentation` 利用金字塔图像结构来...

    Digital-Image-Processing:使用OpenCV C ++进行图像处理学习

    2. 锐化滤波:拉普拉斯算子、 Sobel算子等,增强图像边缘。 五、图像变换 1. 空间变换:旋转、缩放、平移等,改变图像的位置和大小。 2. 傅里叶变换:频域分析,用于频率域的滤波和特征提取。 六、边缘检测 1. ...

    VC数字图像处理基础教程

    3. 锐化:通过拉普拉斯算子或 Sobel 算子增强图像边缘。 六、图像色彩空间转换 1. RGB到灰度转换:通过不同的转换公式将彩色图像转换为灰度图像。 2. 色彩空间转换:如HSV、YCrCb等,理解不同色彩空间的适用场景。 ...

    图像增强入门资料

    - **锐化**:通过增强图像边缘,提高图像的局部对比度,如拉普拉斯算子,高斯滤波器,Sobel算子等。 - **降噪**:消除图像中的噪声,如中值滤波,高斯滤波,小波去噪等。 - **频率域增强**:在傅里叶域内操作,如...

    基于C++和Opencv图像处理函数的静态车道线检测项目源码+数据+报告.zip

    边缘提取你又可以拉普拉斯锐化,sobel算子,Robert算子,scharr算子,candy检测。 于是我干脆把这些实现一个遍,再慢慢选择好了。 于是自实现了以下算法: 1. 彩色图像转灰度 2. 图像翻转,获得负片 3. 线性...

    数字 图像 处理 简单易懂

    - **图像锐化**:增强边缘细节,常用的有拉普拉斯算子和索贝尔算子。 2. **编码VC++实现**: VC++(Visual C++)是一种强大的编程环境,可以用来编写图像处理程序。利用OpenCV库,我们可以轻松实现上述的图像基本...

    OpenCV计算机视觉编程攻略 28第2版 291

    第6章讨论了图像滤波,包括低通滤波器、中值滤波器以及检测边缘的定向滤波器和拉普拉斯算子。这些滤波技术对于去除噪声、增强图像特征或检测边缘有着重要作用。 第7章介绍了直线、轮廓和区域的提取,通过Canny边缘...

Global site tag (gtag.js) - Google Analytics