Canny边缘检测是目前最有效的边缘检测。
因为边缘检测使用一阶微分或二阶微分,微分对噪声敏感,因此进行微分前,需对图像进行降噪处理。
#include "cv.h"
#include "highgui.h"
using namespace std;
using namespace cv;
int main(int argc,char *argv[])
{
Mat src,srcGray,srcEdge,dst;
src=imread("src2.jpg");
imshow("src",src);
cvtColor(src,srcGray,CV_BGR2GRAY);
blur(srcGray,srcGray,Size(3,3));
Canny(srcGray,srcEdge,20,80);
dst.create(src.size(),src.type());
dst=Scalar::all(0);
src.copyTo(dst,srcEdge);
imshow("dst",dst);
waitKey(0);
destroyAllWindows();
return 0;
}
重要函数
实验效果: