我正在运行一个代码来检测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错误:未知函数中不支持的格式或格式组合() n,文件........ \ ocv \ opencv \ src \ cv \ cvcanny.cpp,第66行
有关如何解决此问题的任何提示......
答案 0 :(得分: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);