简体   繁体   中英

Error in OpenCV 2.4.2 “OpenCV Error: Bad flag”

I just started trying to play with OpenCV and I wrote a small program from a book that is pretty simple. The problem is when I try to compile it, I get this error. I will give you all the information I have. I installed openCV using homebrew for Mac OS X 10.7.

#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;
}

I compiled liked this:

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

And this is what I got back when I tried to run it.

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

Thanks again.

That's because OpenCV doesn't support gif :

The function imread loads an image from the specified file and returns it. If the image can not be read (because of missing file, improper permissions, unsupported or invalid format), the function returns empty matrix ( Mat::data==NULL ).Currently, the following file formats are supported:

Windows bitmaps - *.bmp, *.dib (always supported)

JPEG files - *.jpeg, *.jpg, *.jpe (see Note2 )

JPEG 2000 files - *.jp2 (see Note2 )

Portable Network Graphics - *.png (see Note2 )

Portable image format - *.pbm, *.pgm, *.ppm (always supported)

Sun rasters - *.sr, *.ras (always supported)

TIFF files - *.tiff, *.tif (see Note2 )

See docs .

我认为不支持“GIF”

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM