1

画像を受信して​​処理を行い、結果を返信する Web サーバーを作成しています。

画像はpng形式です。PHP を使用して POST 経由で byte[] として受信します。この byte[] を OpenCV IplImage 形式に変換する必要があります。これを行うには、どのような手順に従う必要がありますか?

私が現在行っている方法は、画像を読み取ってハードドライブに保存し、OpenCV cvLoadImage() 関数へのファイルパスを解析することです。上記の段落で説明した方法を行うことは、これよりもはるかに効率的だと思います。

または、自分で IplImage 形式に変換しようとせずに、byte[] を OpenCV 関数に直接解析する方法はありますか?

ありがとうございました..

4

1 に答える 1

1

それは不可能だと思います。

POST リクエストから取得するバイトは、ファイルに格納されている実際のバイトです。PNG は圧縮形式であるため、これらのバイトを最初に解凍する必要があります。(IplImage はイメージの圧縮されていないバイトを保存します)

PNG 解凍ルーチンを自分で作成するか、ライブラリを使用することができます (libpng を確認してください)。

解凍されたバイトを取得したら、IplImage 構造をセットアップする必要があります。

cvCreateImageHeader を使用して適切なサイズと深さの画像を作成し、image->data ポインターを解凍されたデータに設定します。

解凍されたデータが BGR 形式であることを確認してください... インターリーブされています (青の 1 バイト、緑の 1 バイト、赤の 1 バイトなど)。

于 2010-07-12T03:00:18.627 に答える