3

hsvおよびyuv画像のヒストグラムを計算するためのコードがあります。明るさだけに対応する値を取得しようとしているので、hsv画像から「v」チャンネル値を取得し、yuv画像からluma(「y」)チャンネル値を取得したいと思います。これは私が使用したコードです。

    int channels[] = {0};
    calcHist(&src_yuv,1,channels,Mat(),hist,1,histSize,ranges,true,false);

このサンプルコードはyuv用です。{0}を{2}に変更して、HSVから「v」チャネル値を取得します。特定の結果が得られていますが、適切なチャネルを選択しているかどうかはわかりません。それらの番号が私が望む正確なチャネルを選択するかどうかを知るために、私を助けてくれませんか?前もって感謝します

4

1 に答える 1

2

チャネル番号Xが目的のチャネルに対応していることを確実に確認するには、 IPL Image structurechannelSeqの属性を参照してください。あなたが探しているチャンネルの名前(キャラクター)を与えるなら、あなたはそれを見つけました.channelSeq[X]

しかし、この属性がどのように文書化されているかを考えると (他の興味深い属性と共に)、常に を使用していたIPLImageとしても、そこに含まれる情報が正確であるという保証はありません。したがって、画像のチャネル シーケンスを完全に確認するには、変換仕様を信頼し、それを覚えておく必要があります。したがって、 の画像から始めて をBGR使用して変換する場合、チャネルが最初BGR2YUVのチャネルであると信頼します。YOpenCVが最後のチャネルに移動するなどのBGR2YUV意味に変更された場合Yは、残念です。

于 2013-01-10T20:42:38.607 に答える