边缘检测内容学习!!!

第一次在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);

边缘检测内容学习!!!

边缘检测内容学习!!!
以上是我的总结,希望能帮到你。