`

opencv之边缘检测(3)laplacian

 
阅读更多
//-----------------------------------【头文件包含部分】---------------------------------------
//            描述:包含程序所依赖的头文件
//----------------------------------------------------------------------------------------------
#include <opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>

//-----------------------------------【命名空间声明部分】---------------------------------------
//            描述:包含程序所使用的命名空间
//-----------------------------------------------------------------------------------------------
using namespace cv;


//-----------------------------------【main( )函数】--------------------------------------------
//            描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main( )
{
	//【0】变量的定义
	Mat src,src_gray,dst, abs_dst;

	//【1】载入原始图
	src = imread("1.jpg");  //工程目录下应该有一张名为1.jpg的素材图

	//【2】显示原始图
	imshow("【原始图】图像Laplace变换", src);

	//【3】使用高斯滤波消除噪声
	GaussianBlur( src, src, Size(3,3), 0, 0, BORDER_DEFAULT );

	//【4】转换为灰度图
	cvtColor( src, src_gray, CV_RGB2GRAY );

	//【5】使用Laplace函数
	Laplacian( src_gray, dst, CV_16S, 3, 1, 0, BORDER_DEFAULT );

	//【6】计算绝对值,并将结果转换成8位
	convertScaleAbs( dst, abs_dst );

	//【7】显示效果图
	imshow( "【效果图】图像Laplace变换", abs_dst );

	waitKey(0);

	return 0;
}

 

Laplacian 算子是n维欧几里德空间中的一个二阶微分算子,定义为梯度grad()的散度div()。因此如果f是二阶可微的实函数,则f的拉普拉斯算子定义为:

 

(1) f的拉普拉斯算子也是笛卡儿坐标系xi中的所有非混合二阶偏导数求和。

 

(2) 作为一个二阶微分算子,拉普拉斯算子把C函数映射到C函数,对于k 2。表达式(1)(或(2))定义了一个算子Δ :C(R) C(R),或更一般地,定义了一个算子Δ : C(Ω) C(Ω),对于任何开集Ω。

 

根据图像处理的原理我们知道,二阶导数可以用来进行检测边缘因为图像是“二维”, 我们需要在两个方向进行求导。使用Laplacian算子将会使求导过程变得简单。

 

Laplacian 算子的定义:



 

 

需要点破的是,由于 Laplacian使用了图像梯度,它内部的代码其实是调用了 Sobel 算子的。

 

另附一个小tips:让一幅图像减去它的Laplacian可以增强对比度。

 

原始图像:

边缘检测图像:

 
 

  • 大小: 12.4 KB
  • 大小: 18.1 KB
  • 大小: 5.3 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    opencv3.0边缘检测

    在"opencv3.0边缘检测"这个主题中,我们将重点关注Canny算法,因为它是最常用的边缘检测方法之一,以其鲁棒性和准确性著称。 Canny边缘检测算法包括以下几个步骤: 1. **高斯滤波**:首先,为了消除图像噪声,...

    opencv实现边缘检测

    OpenCV是一个强大的开源计算机视觉库,广泛应用于图像处理和计算机视觉算法的实现,包括边缘检测。在这个主题中,我们将深入探讨如何使用OpenCV在Android平台上实现边缘检测。 一、OpenCV简介 OpenCV(Open Source ...

    opencv实现边缘检测的源代码

    在这个特定的案例中,我们关注的是OpenCV如何实现边缘检测,特别是Canny算法。Canny边缘检测是一种广泛使用的边缘检测方法,由John F. Canny在1986年提出,它以其高精度和低错误率而闻名。 Canny边缘检测算法主要...

    android+opencv边缘检测

    边缘检测是计算机视觉中的一个关键步骤,OpenCV提供了多种边缘检测算法,如Canny、Sobel、Laplacian和Hough Transform。Canny算法是一种广泛使用的边缘检测方法,它通过高斯滤波、计算梯度强度和方向、非极大值抑制...

    OpenCV边缘检测算子

    OpenCV(开源计算机视觉库)提供了丰富的边缘检测算法,其中包括拉普拉斯算子和Scharr算子。本文将详细讲解这两个算子,并在VS2010环境下,结合OpenCV 2.4.7版本,探讨如何实现彩色图像的边缘检测。 首先,让我们...

    iOS opencv动态边缘检测

    OpenCV库提供了一系列高效的算法来实现这一功能,例如Canny边缘检测、Sobel、Laplacian等。 **1. iOS集成OpenCV** 要在iOS项目中使用OpenCV,首先需要通过CocoaPods或者Carthage进行依赖管理工具集成。在Podfile中...

    OpenCvSharp边缘检测系列之 Laplacian算子

    OpenCvSharp 是一个OpenCV的.Net wrapper,应用最新的OpenCV库开发,使用习惯比EmguCV更接近原始的OpenCV,有详细的使用样例供参考。该库采用LGPL发行,对商业应用友好。使用OpenCvSharp,可用C#,VB.NET等语言实现...

    Android studio opencv环境配置及边缘检测实例

    Opencv 库提供了多种边缘检测算法,包括 Sobel算子、Canny算子、Laplacian算子等。 在 Android Studio 中实现边缘检测需要按照以下步骤进行: 1. 导入 Opencv 库 首先,需要将 Opencv 库导入到 Android Studio ...

    opencv拉普拉斯边缘检测.zip

    在OpenCV中,我们可以使用`Laplacian()`函数来进行拉普拉斯边缘检测。该函数的原型如下: ```cpp void Laplacian(InputArray src, OutputArray dst, int ddepth, int ksize=3, double scale=1, double delta=0, ...

    opencv_边缘检测

    3. **非极大值抑制**:此步骤用于消除边缘检测过程中可能出现的假响应。在梯度方向上,非极大值点被设置为零,只保留局部最大值,这样可以确保边缘的清晰性。OpenCV内部实现了这个过程。 4. **双阈值检测**:设置两...

    opencv图像边缘检测

    OpenCV库提供了丰富的图像处理功能,包括多种边缘检测算法,如Hough变换、Sobel、Laplacian等。Canny算子因其优良的性能和稳定性,经常被作为图像边缘检测的首选方法。通过深入理解和实践,开发者可以灵活运用OpenCV...

    ios-opencv边缘检测

    本项目"ios-opencv边缘检测"就是这样一个实例,它使用Xcode构建了一个完整的iOS应用,专注于通过OpenCV实现图像的边缘检测。下面将详细阐述这个项目中的关键知识点。 1. **iOS开发环境**:项目基于Apple的Xcode集成...

    opencv边缘检测示例

    在这个"opencv边缘检测示例"中,我们将深入探讨OpenCV如何实现边缘检测,并通过VS2010这一开发环境进行实践。 1. **边缘检测的重要性** 边缘检测在图像处理中扮演着核心角色,它有助于减小数据量、突出关键信息,...

    opencv 图像边缘检测及预处理核心代码

    在图像处理领域,OpenCV(开源计算机视觉库)是一个广泛使用的工具,尤其在图像边缘检测和预处理方面。本文将详细解析"opencv 图像边缘检测及预处理核心代码"的相关知识点,帮助读者深入理解OpenCV如何实现这些功能...

    边缘检测各种算法编码.rar_eye detection_边缘检测_边缘检测 opencv_边缘检测算法

    3. **OpenCV中的边缘检测实现**: OpenCV库为上述算法提供了接口,如`cv::Canny()`, `cv::Sobel()`, `cv::Prewitt()`, `cv::Laplacian()`等函数。在"eye detection"上下文中,边缘检测可以帮助定位眼睛的位置,这在...

    关于OPENCV的边缘检测

    OpenCV提供了多种内置函数来实现不同的边缘检测算法,如Sobel算子、Canny边缘检测和Laplacian算子等。理解和掌握这些算法不仅有助于提高图像处理能力,还能为计算机视觉、模式识别等领域奠定坚实的基础。

    opencv-ex3-5.rar_opencv 检测_opencv 边缘检测_视频 检测_边缘检测

    **OpenCV边缘检测详解** OpenCV(开源计算机视觉库)是一个强大的图像处理和计算机视觉库,广泛用于图像和视频分析。在本节中,我们将深入探讨如何使用OpenCV进行边缘检测,特别是通过Laplace算子实现的边缘检测。...

    QT+opencv边缘检测,轮廓提取及轮廓跟踪

    在本文中,我们将深入探讨如何在QT5.8环境下结合OpenCV3.2库实现图像处理中的关键步骤:边缘检测、轮廓提取以及轮廓跟踪。这些技术在计算机视觉、机器学习和自动化领域中扮演着重要角色。 首先,让我们来了解边缘...

    C++opencv调用摄像头 边缘检测

    OpenCV提供多种边缘检测算法,如Canny、Sobel、Laplacian等。这里以Canny算法为例,Canny算法是一种经典的多级边缘检测算法,具有良好的抗噪性能。使用`Canny`函数进行边缘检测: ```cpp cv::Mat edges; cv::...

    边缘检测opencv源程序

    OpenCV库中包含了一些经典的边缘检测算法,如Sobel、Prewitt、Canny、Laplacian和Harris角点检测等。其中,Canny算法是最常用的边缘检测方法之一,它具有较好的抗噪声性能和边缘定位精度。Canny算法主要包括高斯滤波...

Global site tag (gtag.js) - Google Analytics