opencv---------边沿检测Canny算子

// opencv4_canny.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc.hpp>

using namespace cv;
using namespace std;

//debug下在lib文件的名称后加d,release下不加d。


int main()
{
	Mat img = imread("../res/test.jpg");	//一个点代表省略当前文件夹路径,两个点则代表回到上一个文件夹路径

	if (img.data == NULL)
	{
		std::cout << "image read is null" << std::endl;
		return -10;
	}


	/*namedWindow("【原图】", WINDOW_AUTOSIZE);*/
	imshow("【原图】", img);

	//创建一个与原图像相同大小和类型的矩阵
	Mat dstimg;
	dstimg.create(img.size(), img.type());
	

	//将原图像转换为灰度图像
	Mat grayimg;
	cvtColor(img, grayimg, COLOR_BGR2GRAY);
	imshow("【灰度效果图】", grayimg);

	//使用3 x 3 的内核来降噪
	Mat edge;
	blur(grayimg, edge, Size(3, 3));
	imshow("【降噪效果图】", edge);

	//运行Canny算子
	Canny(edge, edge, 3, 9, 3);

	imshow("【边沿检测效果图】", edge);

	waitKey(0);
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章