OpenCV学习(49)

本文介绍了如何使用OpenCV的Laplacian算子进行边缘检测。内容包括Laplacian算子的基本概念,以及如何通过Laplacian()函数在C++中实现图像的拉普拉斯变换,探讨了该函数的参数设置和工作原理,并提供了示例代码展示实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图像变换(3):基于OpenCV的边缘检测

四;Laplacian算子

1. Laplacian算子简介

2.计算拉普拉斯变换: Laplacian()函数

3.示例程序: Laplacian算子的使用

四;Laplacian算子

1. Laplacian算子简介

       Laplacian算子是n维欧几里德空间中的一个二阶微分算子,定义为梯度grad的散度div。因此如果f是二阶可微的实函数,则f的拉普拉斯算子定义如下。
      (1)f的拉普拉斯算子也是笛卡儿坐标系xi中的所有非混合二阶偏导数求和。

      (2)作为一个二阶微分算子,拉普拉斯算子把C函数映射到C函数。对于k≥2,表达式(1)(或(2))定义了一个算子A:C(R)→C(R);或更一般地,对于任何开集Q,定义了一个算子A:
       根据图像处理的原理可知,二阶导数可以用来进行检测边缘。因为图像是“二维”,需要在两个方向进行求导。使用Laplacian算子将会使求导过程变得简单。
Laplacian算子的定义:

2.计算拉普拉斯变换: Laplacian()函数

  Laplacian函数可以计算出图像经过拉普拉斯变换后的结果。

      ·第一个参数,InputArray类型的image,输入图像,即源图像,填Mat类的对象即可,且需为单通道8位图像。
     ·第二个参数,OutputArray类型的edges,输出的边缘图,需要和源图片有一样的尺寸和通道数。
     ·第三个参数,int类型的ddept,目标图像的深度。
     ·第四个参数,int类型的ksize,用于计算二阶导数的滤波器的孔径尺寸,大小必须为正奇数,且有默认值1。
     ·第五个参数,double类型的scale,计算拉普拉斯值的时候可选的比例因子,有默认值1。
     ·第六个参数,double类型的delta,表示在结果存入目标图(第二个参数dst)之前可选的delta值,有默认值0。
     ·第七个参数,int类型的 borderType,边界模式,默认值为BORDERDEFAULT。这个参数可以在官方文档中 borderInterpolate()处得到更详细的信息。
Laplacian()函数其实主要是利用sobel算子的运算。它通过加上 sobel算子运算出的图像x方向和y方向上的导数,来得到载入图像的拉普拉斯变换结果。
其中,sobel 算子(ksize>1)如下:

 

 3.示例程序: Laplacian算子的使用

代码:
 

#include<opencv2/opencv.hpp>
#include <opencv2/core/utils/logger.hpp>
#include<iostream>
using namespace std;
using namespace cv;//包含cv命名空间
int main()
{
	cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
	Mat src, src_gray, dst, abs_dst;
	//载入原始图
	src = imread("E:/pictures/2.jpg");
	//显示原始图
	imshow("【原始图】图像Laplace变换",src);
	//使用高斯滤波消除噪声
	GaussianBlur(src,src,Size(3,3),0,0,BORDER_DEFAULT);
	//转换为灰度图
	cvtColor(src, src_gray, COLOR_RGB2GRAY);
	//使用Laplace函数
	Laplacian(src_gray,dst,CV_16S,3,1,0, BORDER_DEFAULT);
	//计算绝对值,并将结果转换成8位
	convertScaleAbs(dst,abs_dst);
	//显示效果图
	imshow("【效果图】图像Laplace变换",abs_dst);
	waitKey(0);
	return 0;

}




运行结果:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值