我刚刚开始尝试使用 OpenCV,并根据一本书编写了一个非常简单的小程序。问题是当我尝试编译它时,出现此错误。我会给你我所掌握的所有信息。我使用 Mac OS X 10.7 的 homebrew 安装了 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
再次感谢。
那是因为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)
See docs http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html#cv-imread.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)