5

我刚开始尝试使用 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

再次感谢。

4

2 回答 2

9

那是因为 OpenCV 不支持gif

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

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

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

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

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

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

太阳栅格 - *.sr、*.ras(始终支持)

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

请参阅文档

于 2012-07-15T17:48:41.067 回答
2

我认为不支持“gifs”

于 2012-07-15T17:52:20.527 回答