Superkkt Blog

OpenCV의 cvSobel() 함수로 Edge Magnitude와 Orientation을 구할 때 파라메터로 들어가는 이미지는 0~1 사이 값을 가지도록 스케일되어 있어야 한다. 예제 코드는 아래 참조~

        IplImage *img_32f = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
        cvConvertScale(img, img_32f, 1.0 / 255.0, 0);
        cvSmooth(img_32f, img_32f, CV_GAUSSIAN, 3);

        IplImage *diff_x = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
        IplImage *diff_y = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
        cvSobel(img_32f, diff_x, 1, 0, 3);
        cvSobel(img_32f, diff_y, 0, 1, 3);

        IplImage *magnitude = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
        IplImage *orientation = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
        /* calculate the edge magnitude and orientation */
        cvCartToPolar(diff_x, diff_y, magnitude, orientation, 0);




2010/03/08 15:27 2010/03/08 15:27

trackbacks

trackbacks rss

http://superkkt.com/trackback/484

Leave a Comment