OpenCV 2.4.2中的错误“OpenCV错误:坏标志” [英] Error in OpenCV 2.4.2 "OpenCV Error: Bad flag"

查看:1450
本文介绍了OpenCV 2.4.2中的错误“OpenCV错误:坏标志”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚开始尝试使用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错误:cvGetMat,文件/tmp/homebrew-opencv-2.4.2-oQmu/OpenCV-2.4.2/modules/中的坏标志(参数或结构字段)(无法识别或不支持的数组类型) core / src / array.cpp,第2482行
终止调用抛出一个exceptionAbort陷阱:6

$ p $ b 这是因为OpenCV不支持 gif


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



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



JPEG文件 - * .jpeg,* .jpg ,* .jpe(见Note2)



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



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



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



太阳光栅 - * .sr,* .ras(总是支持)



TIFF文件 - * .tiff,* .tif Note2)


请参阅 docs


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.

这篇关于OpenCV 2.4.2中的错误“OpenCV错误:坏标志”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆