0

OpenCV 関数を使用して画像を読み込もうとすると問題が発生しましたimread()。画像は正常で、画像表示ソフトウェアで表示できます。しかし、を使用しimdecode()て画像データを取得すると、データは NULL を返します。画像とコードをアップロードして、誰かが私を助けてくれることを願っています

Mat img = imread(image_name);
if(!img.data) return -1;

画像のリンクはこちら: http://img3.douban.com/view/photo/raw/public/p2198361185.jpg

PS:image_name大丈夫です。OpenCV はこの画像をデコードできないと思います。新しいデコード ライブラリを追加するなど、OpenCV を使用してこの画像をデコードする方法はありますか? ちなみに、この画像はfreeImageなどの他の画像ライブラリを使って読み込むことができます。

4

3 に答える 3

1

あなたのイメージは入っ.gifていますが、現時点では OpenCV でサポートされていません。

注 OpenCV は、Windows ビットマップ (bmp)、移植可能な画像フォーマット (pbm、pgm、ppm)、および Sun ラスター (sr、ras) の画像フォーマットをサポートしています。プラグインの助けを借りて (ライブラリを自分で構築する場合はプラグインを使用するように指定する必要がありますが、デフォルトで出荷されるパッケージに含まれています)、JPEG (jpeg、jpg、jpe)、JPEG 2000 (jp2 - CMake で Jasper としてコードネームが付けられている)、TIFF ファイル (tiff、tif)、およびポータブル ネットワーク グラフィックス (png) です。さらに、OpenEXR も可能です。

ソース -ここをクリック

このようなものを使用して、変換を実行できます。

これを使用して画像を読み込むことができましたimread。また、FreeImageもご覧ください。

于 2014-10-28T06:27:58.037 に答える
-5

OpenCV で画像を読み取る方法は 2 つあります。1 つは を使用する方法Mat、もう 1つは を使用する方法IplImageです。前者を使っているようです。次の 2 番目の引数でimreadも試すことができます。

image = imread("image.jpg", CV_LOAD_IMAGE_COLOR);   // Read the file

他に使用するIplImage

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc_c.h"
#include <opencv2/core/core.hpp>

IplImage* src = 0;

if( (src = cvLoadImage("filename.jpg",1)) == 0 )
{
    printf("Cannot load file image %s\n", filename);
}

それらが機能しない場合は、OpenCV でイメージを読み取るための libjpeg、libtiff、およびその他の依存関係がインストールされているかどうかを確認してください。

それが役立つことを願っています。

于 2014-10-28T07:04:56.423 に答える