2011-01-14 8 views
1

私はアプリケーションでopenCVにアクセスするためにJNAを使用しています。RGB値の配列をjavaに表示する関数が1つあります。画像が実際にrgb色空間を使用していれば問題ありませんイメージはhsvまたはバイナリイメージです。奇妙なビヘイビアアーティファクトを生成します。どの色空間を使用しているかを検出して転送前にすべてをrgbに変換し、rgbに変換します。転送のためにすべての画像をRGBに変換

答えて

1

3つのバッファを直接調べて、画像がrgbであるかどうかを検出することはできません。別のプロセスやアプリケーションで使用できるようにするには、そのフォーマットを知る必要があります。 すべてのプロセス間バッファにrgbを使用し、各元のプロセスですべてのイメージがrgbに変換されるようにすることをお勧めします。

Opencvでは、 "CvtColor"を使用してネイティブbgrをrgbに変換します。他のアプリから - 画像変換をサポートしていない場合は、必要に応じてcvconvertを使用してそれらをすべてrgbに取り込むことができます。

「マージ」と「ミックスチャンネル」を使用して、簡単なrgbをbgrにすることもできます。

2.2では、色相に256の値をすべて使用する、より良いrgbからhsvまでのfuinctionがあります。それは古いものよりも優れています。ここ

ドキュメント:http://opencv.willowgarage.com/wiki/

+0

よく私の問題は、画像がRGBが、ユーザーの操作として開始しているので、私は、気圧、それを追跡することはできませんバイナリなどにHSVにそれらを回す、フラグのいくつかの並べ替えにはありませんtell methis is hsvこれはバイナリです –

+0

あなたは自分自身のトラックを維持することができます。 inRGB、inHSVなどの変数を用意します。ユーザーがhsvに変換するたびに、inHSVをtrueに設定します。 –

関連する問題