13

問題は、それを HSV に変換する必要がある場合です。CV_BGR2HSV と CV_RGB2HSV では、異なる結果が得られます。そのため、開いたときの色の順序や、特定の順序で画像を開くimreadように強制する方法を知る必要があります。imread

ここに画像の説明を入力

4

2 に答える 2

17

imreadの OpenCV ドキュメントでは、デフォルトで 3 チャネルのカラー画像の場合、データは BGR の順序で格納されます。たとえば、Mat では、データは 1D unsigned char ポインタとして格納され、インデックスの任意のカラー ピクセルpx_idxが 3 要素になるようになっています。 [px_idx + 0]:青チャンネル、[px_idx + 1]:緑チャンネル、[px_idx + 2]:赤チャンネルの順に

注意 カラー画像の場合、デコードされた画像には BGR 順に格納されたチャンネルが含まれます。

に渡す flag パラメータを介して色の種類を (限定的に) 制御imreadできますが、チャネルの順序を指定することはできません (すべてのカラー画像が BGR であると想定する必要があります)。

CV_LOAD_IMAGE_ANYDEPTH - 設定されている場合、入力に対応する深度がある場合は 16 ビット/32 ビット イメージを返し、それ以外の場合は 8 ビットに変換します。

CV_LOAD_IMAGE_COLOR - 設定されている場合、常に画像をカラー画像に変換します

CV_LOAD_IMAGE_GRAYSCALE - 設定されている場合、常に画像をグレースケールに変換します

またはもっと簡単に、

>0 Return a 3-channel color image.(CV_LOAD_IMAGE_COLORと同じ)

=0 Return a grayscale image.(CV_LOAD_IMAGE_GRAYSCALEと同じ)

<0 Return the loaded image as is (with alpha channel).(CV_LOAD_IMAGE_ANYDEPTH と同じ)

于 2013-05-07T05:09:21.463 に答える