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;
}

 

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