3

Debianでopencv2.3.1を使用しています。次のコードは、特定のjpeg2000ファイルのロードに失敗します。

#include "opencv/cv.h"
#include "opencv/highgui.h"
#include <vector>
#include <iostream>

int main()
{
    IplImage* img_temp = cvLoadImage("delmeg.jp2", CV_LOAD_IMAGE_ANYCOLOR);
    //IplImage* img_temp = cvLoadImage("delmec.jp2");
    if(img_temp == NULL)
    {
        std::cout << "Can't load the image.." << std::endl;
        return -1;
    }
    cv::Mat img(img_temp);

    if (img_temp != NULL){
        cvReleaseImage(&img_temp);
    }
    return 0;
}

次のコマンドを使用してコンパイルしました。

g++ -Wall -g -I /usr/include/ testopencv2x.cpp -o testopencv2x -lopencv_core -lopencv_imgproc -lopencv_highgui

誰かが私がここで欠けているものを知っていますか?

ありがとう。

4

1 に答える 1

2

2.3.1についてはわかりませんが、ドキュメントには2.4.3について書かれています。

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

したがって、この形式をサポートするようにOpenCVをビルドするようにしてください。

于 2013-02-06T17:00:22.397 に答える