c++ - OpenCV 2.4.2 错误 "OpenCV Error: Bad flag"

标签 c++ macos opencv computer-vision homebrew

我刚开始尝试使用 OpenCV,并且根据一本书编写了一个非常简单的小程序。问题是当我尝试编译它时,出现此错误。我会告诉你我所有的信息。我使用 Homebrew 软件为 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

再次感谢。

最佳答案

那是因为OpenCV不支持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 )

参见 docs .

关于c++ - OpenCV 2.4.2 错误 "OpenCV Error: Bad flag",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11494119/

相关文章:

c++ - 编写 scons 脚本来处理许多子目录中文件的编译

objective-c - Cocoa:将一个项目添加到自定义 OS X 钥匙串(keychain)中,以便任何其他应用程序可以在没有提示的情况下访问它

macos - 如何添加 Electron DMG 背景图像?

c++ - C++ 标准中的重载与默认参数

c++ - C++ 调用约定是否受标准约束,因为函数的返回类型不需要在声明 fn 时定义?

c++ - SO_RCVTIME和SO_RCVTIMEO不影响Boost.Asio操作

java - 在 Mac OS 中的 Eclipse 4.3 中添加新的执行环境

c - 使用 OpenCV 测量光量?

android - 无法运行由 NDK 编译的 x86 可执行文件

python - OpenCV - 如何在轮廓内画一条线?