如何用OpenCV进行canny边缘检测?载入图像,并将其转成灰度图,在用blur函数进行图像模糊以降噪,然后用canny函数进行边缘检测。
C++实现:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 读取图像
Mat img = imread("/Users/dwz/Desktop/cpp/1.jpg");
Mat gray, edges;
// 转为灰度图
cvtColor(img, gray, COLOR_BGR2GRAY);
// 均值滤波
blur(gray, gray, Size(3, 3));
// 边缘检测
Canny(gray, edges, 100, 220, 3);
imwrite("edge.jpg", edges);
return 0;
}
输入图像:
结果: