1

他のすべての色を無視したい。白と黄色の間の色を数えたいだけです(明るい黄色、薄い黄色..白まで)。次に、特定の画像がどの程度黄色であるかを評価します。それは可能ですか?

私は遊んでBitmap.getPixel()いますが、他の色を無視する方法がわかりません。

ここに画像の説明を入力

この例では、明るい黄色と白の間の色が多いため、画像 1 が選択されます。

黄色がかった色だけを検出するにはどうすればよいですか?

4

2 に答える 2

12

ピクセルの HUE に注目します。このコードの使用:

// get HSV values for the pixel's colour
float[] pixelColorHsv = new float[3];
Color.colorToHSV(Bitmap.getPixel(x,y), pixelColorHsv);

黄色とは何かはあなた次第かもしれませんが、範囲は 72 から 49 の間である可能性があり (このツールで遊んでアイデアを得ることができます)、この範囲内のどこにあるか、または明るさと彩度がどれくらい高いか低いかを定量化できます。

于 2012-09-13T20:19:17.923 に答える
1

このBitmap.getPixel(int x, int y)メソッドは、Colorそのピクセルの RGB 値を持つオブジェクトを返します。黄色は赤と緑の組み合わせなので、黄色の RGB トリプルは (255, 255, 0) になりますよね? 暗くなると、赤と緑の両方の値が下がります。明るくなると、青の値が上がります。したがって、基本的には、特定のピクセルの RGB 値が (255, 255, 0) にどの程度「近い」かを検出し、画像全体の近似値を累積する方法を見つける必要があります。2 番目の画像についても同じことを行い、2 つの結果を比較します。

于 2012-09-13T20:22:11.900 に答える