拉普拉斯算子和scharr算子进行边缘检测

在这里插入图片描述

int main()
{
	//1.原图像。
	Mat src = imread("女神.jpg");
	//resize(src, src, Size(), 0.4, 0.4);
	imshow(window1,src);
	GaussianBlur(src,src,Size(3,3),0,0);
	cvtColor(src,src,CV_BGR2GRAY);
	//2.scahrr_x()边缘检测,类似于sobel算子,用于大于3的核。
	Mat scharr_x;
	Scharr(src,scharr_x,CV_64F,1,0);
	convertScaleAbs(scharr_x,scharr_x);
	imshow("scharr",scharr_x);

	//拉普拉斯算子。
	Mat lap;
	Laplacian(src,lap,CV_64F,3);
	convertScaleAbs(lap,lap);
	imshow("lap",lap);




	waitKey(0);
	return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
拉普拉斯算子和马尔算子是图像处理中常用的滤波算法,OpenCV库中提供了相应的函数实现。 拉普拉斯算子是一种二阶微分算子,用于增强图像中的边缘和细节信息。在OpenCV中,可以使用函数cv::Laplacian()进行计算。具体用法如下: ```c++ void Laplacian(InputArray src, OutputArray dst, int ddepth, int ksize, double scale = 1, double delta = 0, int borderType = BORDER_DEFAULT) ``` 其中,参数说明如下: - `src`:输入图像,可以是单通道或多通道的图像。 - `dst`:输出图像,与输入图像大小、类型相同。 - `ddepth`:输出图像的深度,通常为CV_16S、CV_32F、CV_64F之一。 - `ksize`:拉普拉斯算子的卷积核大小,可以为1、3、5、7。 - `scale`、`delta`:控制输出图像的缩放和平移。 - `borderType`:边界处理方式,通常为BORDER_DEFAULT。 马尔算子是一种一阶微分算子,也可以用于边缘检测和图像增强。在OpenCV中,可以使用函数cv::Scharr()和cv::Sobel()进行计算。具体用法如下: ```c++ void Scharr(InputArray src, OutputArray dst, int ddepth, int dx, int dy, double scale = 1, double delta = 0, int borderType = BORDER_DEFAULT) ``` ```c++ void Sobel(InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize = 3, double scale = 1, double delta = 0, int borderType = BORDER_DEFAULT) ``` 其中,参数说明与cv::Laplacian()函数类似。需要注意的是,dx和dy代表算子的方向,而ksize代表卷积核大小,通常为3、5、7。Scharr算子是Sobel算子的增强版,可以用于提高图像增强的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值