[学习OpenCV攻略][008][Canny边缘检测]
cvGetSize(输入图片)
得到输入图片的大小
cvCanny(输入图片,输出图片,lowThresh,highThresh,aperture)
把输入图片按设定光圈值进行Canny边缘检测,然后输出到输出图片中
#include "cv.h"
#include "highgui.h"
IplImage *doCanny(IplImage *in, double lowThresh, double highThresh, double aperture){
if(in->nChannels != 1){
return NULL;
}
IplImage *out = cvCreateImage(cvGetSize(in), in->depth, 1);
cvCanny(in, out, lowThresh, highThresh, aperture);
return out;
}
int main(int argc, char **argv){
IplImage *img_rgb = cvLoadImage(argv[1]);
IplImage *img_gry = cvCreateImage(cvSize(img_rgb->width, img_rgb->height), img_rgb->depth, 1);
cvCvtColor(img_rgb, img_gry, CV_BGR2GRAY);
cvNamedWindow("gray", CV_WINDOW_AUTOSIZE);
cvNamedWindow("canny", CV_WINDOW_AUTOSIZE);
cvShowImage("gray", img_gry);
IplImage *img_cny = doCanny(img_gry, 10, 100, 3);
cvShowImage("canny", img_cny);
cvWaitKey(0);
cvReleaseImage(&img_cny);
cvReleaseImage(&img_gry);
cvReleaseImage(&img_rgb);
cvDestroyWindow("canny");
cvDestroyWindow("gray");
return 0;
}

浙公网安备 33010602011771号