0

我正在运行一个代码来检测 Visual Studio 2008 中 openCV 2.1 中的行,这是代码的一部分:

                  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 Error: Unsupported format or combination of formats () in unknown functi n, file ........\ocv\opencv\src\cv\cvcanny.cpp ,第 66 行

有关如何解决此问题的任何提示...

4

1 回答 1

2

默认情况下,当您加载图像时,它会将其加载为彩色图像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);
于 2013-03-27T06:56:11.303 回答