2013-03-27 3 views
0

Я бегу код для обнаружения линий в OpenCV 2.1 в Visual Studio 2008, здесь какая-то часть кода:Обнаружение линии OpenCV

    IplImage* src=cvLoadImage("parrot.png"); 

        IplImage* dst = cvCreateImage(cvGetSize(src), 8, 1); 
        IplImage* color_dst = cvCreateImage(cvGetSize(src), 8, 3); 
        CvMemStorage* storage = cvCreateMemStorage(0); 
        CvSeq* lines = 0; 
        int i; 
      int choice=0; 
        cvCanny(src, dst, 10, 100, 3); 

код компилируется нормально, но при запуске выдает следующую ошибку: OpenCV Ошибка: неподдерживаемый формат или комбинация форматов() в неизвестном functi н, файл ........ \ НРЦ \ OpenCV \ SRC \ резюме \ cvcanny.cpp, строка 66

любые намеки о том, как чтобы исправить это ...

ответ

2

По умолчанию при загрузке изображения он загружает его как цвет ur image cvLoadImage(const char* filename, int iscolor=CV_LOAD_IMAGE_COLOR). Canny требует одноканального изображения в качестве входа и выхода void cvCanny(const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size=3). Итак, я думаю, что если вы загрузите свое изображение в виде шкалы серого или преобразуете его позже в серое, оно должно работать.

Либо:

IplImage* src=cvLoadImage("parrot.png", CV_LOAD_IMAGE_GRAYSCALE); 

Или:

cvtColor(src, src, CV_RGB2GRAY); 
+0

большое спасибо:) я забыл сделать так ... @ Safir –

Смежные вопросы