0

次のグラフに示すように、特定の画像の色相ヒストグラムがあります。

ここに画像の説明を入力

色相ヒストグラムの計算に使用するコードは次のとおりです (EMGU ラッパーを使用しています)。

   Image<Hsv, Byte> hsvImage = originalImage.Convert<Hsv, Byte>();
   Image<Gray, byte>[] channels = hsvImage.Split();    
   DenseHistogram hist = new DenseHistogram(19, new RangeF(0,190));
   hist.Calculate(new IImage[1] { channel }, true, null);

赤い点線の間の範囲内にあるピクセルの輝度ヒストグラムを取得する必要があります。

これを実装する方法について誰かアイデアがありますか?

前もって感謝します。

4

1 に答える 1

3

InRangeを使用して、希望する範囲に入るピクセルのマスクである画像を取得する必要があります。次に、その画像をmaskパラメーター(null例にある)としてに渡しますCalculate()。70 から 100 の間の色相値が必要なようです。

コードは次のようになります: (免責事項: 私は C# を書きません)

DenseHistogram brightnessHist = new DenseHistogram(10, new RangeF(0,260)); //Use whatever range you want
//InRange is probably exclusive of upper bound
brightnessHist.Calculate(new IImage[1]{channels[2]}, false, channels[0].InRange(70,101));
于 2013-06-25T15:35:05.993 に答える