OpenCV学习之Canny边缘检测

来源:互联网 发布:图像对比识别软件 编辑:程序博客网 时间:2024/06/06 17:14
#include "cv.h"#include "highgui.h"//Canny边缘检测IplImage* doCanny(    IplImage* in,    double lowThresh, //Threshold门槛    double highThresh,    double aperture) //孔洞{    if (in->nChannels != 1)        return(0); // Canny only handles gray scale images    IplImage* out = cvCreateImage(        cvGetSize(in),        in->depth, //IPL_DEPTH_8U,            1);    cvCanny(in, out, lowThresh, highThresh, aperture);    return(out);};int main(int argc, char** argv){    IplImage* img_rgb = cvLoadImage("Lena.tiff");    IplImage* img_gry = cvCreateImage(cvSize(img_rgb->width, img_rgb->height), img_rgb->depth, 1);    //通道数设置为1,灰度变换    cvCvtColor(img_rgb, img_gry, CV_BGR2GRAY);    cvNamedWindow("Example RGB", CV_WINDOW_AUTOSIZE);    cvNamedWindow("Example Gray", CV_WINDOW_AUTOSIZE);    cvNamedWindow("Example Canny", CV_WINDOW_AUTOSIZE);    cvShowImage("Example RGB", img_rgb);    cvShowImage("Example Gray", img_gry);    IplImage* img_cny = doCanny(img_gry, 10, 100, 3);    cvShowImage("Example Canny", img_cny);    cvWaitKey(0);    cvReleaseImage(&img_rgb);    cvReleaseImage(&img_gry);    cvReleaseImage(&img_cny);    cvDestroyWindow("Example RGB");    cvDestroyWindow("Example Gray");    cvDestroyWindow("Example Canny");}
原创粉丝点击