我刚开始尝试使用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_legacyAnd 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: 6Thanks 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错误:坏标志”
发布评论