【OpenCV3经典编程100例】(08)边缘检测:拉普拉斯算子Laplacian()

求取拉普拉斯算子来检测灰度图的边缘,和上一节自定义的滤波器对比一下!

void Laplacian(InputArray src, //输入图像,必须是单通道8位图像
	OutputArray dst, //输出的边缘图像
	int ddepth,//图像深度
	int ksize = 1, //正奇数,默认值1
	double scale = 1, double delta = 0,//默认
	int borderType = BORDER_DEFAULT);

一、c++示例代码

//包含头文件
#include <opencv2/opencv.hpp>
//命名空间
using namespace cv;
using namespace std;
//全局函数声明部分

//主函数
int main()
{
	//【1】载入图像,灰度化
	Mat image = imread("F:\\opencvtest\\testImage\\beauty.png", 0);
	//【2】检查是否载入成功
	if (image.empty())
	{
		printf("读取图片错误,请确认目录下是否有imread函数指定图片存在! \n ");
		return 0;
	}
	//【3】拉普拉斯算子
	Mat result;
	Laplacian(image, result, CV_8U);
	//【4】显示图像
	imshow("示例08", result);
	//【5】保持窗口显示
	waitKey(0);
	return 0;
}

二、运行截图

上一节用自定义的滤波器滤波后的图片


对比一下,这一节利用opencv自带的拉普拉斯算子检测边缘图


三、数字图像处理知识

拉普拉斯算子

1. 图像函数的拉普拉斯变换定义为(差分形式):


2. 用于卷积的(Kernel)


扫描二维码关注公众号,回复: 1802645 查看本文章

3. 拉普拉斯变换对图像增强的基本方法:


(1)用于拉普拉斯模板中心系数为负

(2)用于拉普拉斯模板中心系数为正




猜你喜欢

转载自blog.csdn.net/misterjiajia/article/details/80299817