边缘检测内容学习!!!

第一次在csdn上发表文章,今天掌握了图片的边缘检测内容,想分享出来。一是加深印象,二是想给需要的朋友一些方便,因为学了这么多天我也是借助csdn了解了很多,所以一起学习!分享!进步!

几个边缘检测的主要代码:
canny边缘检测:

Mat cvimg = imread(cvfile);
	Mat edgeImg;
	Canny(cvimg,edgeImg,50,50);

sobel边缘检测:

    Mat edgeImg;
    Mat x_edgeImg, y_edgeImg;
    Mat abs_x_edgeImg, abs_y_edgeImg;
    Sobel(cvimg,x_edgeImg, CV_16S, 1, 0, 3, 1, 1, BORDER_DEFAULT);
    convertScaleAbs(x_edgeImg, abs_x_edgeImg);
     Sobel(cvimg, y_edgeImg, CV_16S, 0, 1, 3, 1, 1, BORDER_DEFAULT);
     convertScaleAbs(y_edgeImg, abs_y_edgeImg);
     addWeighted(abs_x_edgeImg, 0.5, abs_y_edgeImg, 0.5, 0, edgeImg);
     主程序如下:

Laplacian边缘检测

  Mat cvimg = imread(cvfile);
    Mat lapImg;
	 Mat edgeImg;
    Laplacian(cvimg, lapImg, CV_16S, 5, 1, 0, BORDER_DEFAULT);
    convertScaleAbs(lapImg, edgeImg);

我用了4个pushbutton,定义了四个槽函数,可以显示原图以及这三种处理,程序大体相同,我拿canny举例

//canny边缘检测
	QString fileName = QFileDialog::getOpenFileName();
	QPixmap img(fileName);
	std::string stdfile =  fileName.toStdString();
	cv::String cvfile = stdfile;
	Mat cvimg = imread(cvfile);
	Mat edgeImg;
	Canny(cvimg,edgeImg,50,50);
	 QImage grayqing = Mat2QImage(edgeImg);
	QPixmap imgg = QPixmap::fromImage(grayqing);
	QPixmap imt = imgg.scaled(ui.label->width(),ui.label->height(),Qt::KeepAspectRatio);
	ui.label1->setPixmap(imt);

在这里插入图片描述

在这里插入图片描述
以上是我的总结,希望能帮到你。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值