공부해요/OpenCV

[ openCV 제대로 배우기 ] ex2-6.exe - 캐니 엣지 검출기

예쁜꽃이피었으면 2014. 7. 28. 10:22


# include <opencv\cv.h> 

# include <opencv\highgui.h> 


IplImage* doCanny(

    IplImage* in,

    double    lowThresh,

    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( argv[1] );

  IplImage* img_rgb = cvLoadImage("c:/opencv/build/doc/opencv-logo.png" );

  IplImage* img_gry = cvCreateImage( cvSize( img_rgb->width,img_rgb->height ), img_rgb->depth, 1);

  cvCvtColor(img_rgb, img_gry ,CV_BGR2GRAY);

  cvNamedWindow("Example Gray", CV_WINDOW_AUTOSIZE );

  cvNamedWindow("Example Canny", CV_WINDOW_AUTOSIZE );

  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 Gray");

  cvDestroyWindow("Example Canny");

}






** 캐니 엣지 검출기의 결과 영상은 입력 영상과 크기가 같고,단일 채널로 이루어져 있다.

반응형