社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
1、Sobel
2、Laplace
3、Roberts
4、Canny
canny对边缘检测质量进行分析时,有3个原则:
- 1、信噪比准则
- 2、定位精度准则
- 3、单边缘响应准则
canny边缘检测的基本思想是:首先对图像选择一定的Gauss滤波器进行平滑滤波,然后采用非极值抑制技术进行处理得到最后的边缘图像。
步骤一:
GaussianBlur(src,dst,Size(3,3),1.5,1.5);
步骤二:
步骤三:
步骤四:
void Canny(InputArray image,OutputArray edges, double threshold1, double threshold2, int apertureSize=3,bool L2gradient=false )
低于阈值1的像素点会被认为不是边缘;
高于阈值2的像素点会被认为是边缘;
在阈值1和阈值2之间的像素点,若与第2步得到的边缘像素点相邻,则被认为是边缘,否则被认为不是边缘。
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
void main()
{
Mat srcImage = imread("F:\opencv_re_learn\2.jpg");
if (!srcImage.data){
cout << "falied to read" << endl;
system("pause");
return;
}
Mat srcGray;
cvtColor(srcImage, srcGray, CV_BGR2GRAY);
//高斯滤波
GaussianBlur(srcGray, srcGray, Size(3, 3),
0, 0, BORDER_DEFAULT);
//Canny检测
int edgeThresh =100;
Mat Canny_result;
Canny(srcImage, Canny_result, edgeThresh, edgeThresh * 3, 3);
imshow("src", srcImage);
imshow("Canny_result", Canny_result);
waitKey(0);
}
实现效果:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!