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