CVAPI(void) cvCanny( const CvArr* image, CvArr* edges, double threshold1,
运行结果:
double threshold2, int aperture_size CV_DEFAULT(3) );
cvCanny()输入和输出都是单通道图像,因此彩色图需要用cvCvColor()把彩色图转换为灰度图
测试用图:
程序代码:
#include <highgui.h>
#include<cv.h>
#include <opencv2/legacy/legacy.hpp>
using namespace std;
int main()
{
IplImage *img_in = cvLoadImage("test.jpg");
IplImage *img_temp = cvCreateImage(cvGetSize(img_in),IPL_DEPTH_8U,1);
IplImage *img_out = cvCreateImage(cvGetSize(img_in),IPL_DEPTH_8U,1);
cvNamedWindow("img_in",CV_WINDOW_AUTOSIZE);
cvShowImage("img_in",img_in);
cvCvtColor(img_in,img_temp,CV_BGR2GRAY);
cvNamedWindow("img_temp",CV_WINDOW_AUTOSIZE);
cvShowImage("img_temp",img_temp);
cvCanny(img_in,img_out,50,100,3);
cvNamedWindow("img_out",CV_WINDOW_AUTOSIZE);
cvShowImage("img_out",img_out);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&img_in);
cvReleaseImage(&img_out);
return 0;
}
运行结果: