5

私は 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

再度、感謝します。

4

2 に答える 2

9

これは、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 を参照)

ドキュメントを参照してください。

于 2012-07-15T17:48:41.067 に答える
2

「gif」はサポートされていないと思います

于 2012-07-15T17:52:20.527 に答える