OpenCV 2.4.2“OpenCV错误:错误标志”出错

时间:2012-07-15 17:35:38

标签: c++ macos opencv computer-vision homebrew

我刚开始尝试使用OpenCV,我从一本非常简单的书中写了一个小程序。问题是当我尝试编译它时,我得到了这个错误。我会告诉你我的所有信息。我使用自制软件为Mac OS X 10.7安装了openCV。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

int main(int argc, char *argv[])
{
cv::Mat image = cv::imread("usf.gif");
cv::namedWindow("My Image");
cv::imshow("My Image", image);
cv::waitKey(5000);

return 1;
}

我编译喜欢这个:

g++ -o test opencvtest.cc -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_video -lopencv_features2d -lopencv_ml -lopencv_highgui -lopencv_objdetect -lopencv_contrib -lopencv_legacy

这就是我试图运行它时所得到的。

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /tmp/homebrew-opencv-2.4.2-oQmu/OpenCV-2.4.2/modules/core/src/array.cpp, line 2482
terminate called throwing an exceptionAbort trap: 6

再次感谢。

2 个答案:

答案 0 :(得分:9)

那是因为OpenCV不支持 gif

  

函数imread从指定文件加载图像并返回它。如果无法读取图像(由于文件丢失,权限不正确,格式不受支持或无效),该函数返回空矩阵(Mat :: data == NULL)。目前,支持以下文件格式:

     

Windows位图 - * .bmp,* .dib(始终支持)

     

JPEG文件 - * .jpeg,* .jpg,*。jpe(见注2)

     

JPEG 2000文件 - * .jp2(见注2)

     

便携式网络图形 - * .png(见注2)

     

便携式图像格式 - * .pbm,* .pgm,* .ppm(始终支持)

     

Sun rasters - * .sr,* .ras(始终支持)

     

TIFF文件 - * .tiff,* .tif(见注2)

请参阅docs

答案 1 :(得分:2)

我认为不支持“GIF”