Я работаю над растровыми изображениями в Android Studio, и я знаю, как сделать, чтобы обнаружить все красные пиксели для примеров, а не только пиксели, которые строго равны Color.RED.Я просто привожу пример с КРАСНЫМ цветом, но я хочу сделать это с любым другим возможным цветом.
I tried to do this:
...
int[] pixels = new int[width * height];
myBitmap.getPixels(pixels, 0, width, 0, 0, width, height);
for (int i = 0; i < width * height; i++) {
if (pixels[i] == Color.RED) {
// color detected
}
...
Но это не работает, так как мое изображение не содержит красного пикселя (255, 0, 0), но содержит пиксели, которые могут быть (251, 30, 77) или (239, 23, 42), которые также являются «красными» и т. Д.
Итак, как я могу поступить с такой вещью?Я также попробовал что-то вроде:
int reference; // color as rgb
if ( (Color.red(pixels[i]) > Color.red(reference) - 20) &&
(Color.red(pixels[i]) < Color.red(reference) + 20 &&
...
{
// pixel detected
}
...
Где я предполагаю, что (r + - 20, g + - 20, b + -20) является частью (r, g, b) (я имею в виду, длячеловеческий глаз)
Есть идеи, как мне это сделать?