一、目标
学习如何使用opencv中的函数,学习对图像进行边缘检测的操作,学习Canny()函数的使用
二、函数说明
函数原型:
void Canny(InputArray src,OutputArray dst, double threshold1, double threshold2, int apertureSize=3,bool L2gradient=false )
参数详解:
src:源图像
dst:目标图像。
threshold1:第一个滞后性阈值。
threshold2:第二个滞后性阈值。
apertureSize:表示应用Sobel算子的孔径大小,其有默认值3。
L2gradient:一个计算图像梯度幅值的标识,有默认值false。
需要注意的是,这个函数threshold1和threshold2两者的小者用于边缘连接,而大者用来控制强边缘的初始段, 推荐的高低阈值比在2:1到3:1之间。
三、程序代码
#include "cv.h" // OpenCV 文件头
#include "highgui.h"
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc.hpp"
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
Mat m_SrcImg;
m_SrcImg = imread("C:\\Users\\lidabao\\Desktop\\image\\1\\LENA1.bmp", -1);
namedWindow("原图像", 1);
imshow("原图像", m_SrcImg);
Mat m_ResImg;
//Canny边缘检测
Canny(m_SrcImg, m_ResImg, 50, 200);
namedWindow("Canny边缘检测", 1);
imshow("Canny边缘检测", m_ResImg);
waitKey(0);
}
四、结果
程序运行如下图:
五、注意
正确的配置opencv
正确使用Canny()函数