То, что вы делаете, создает список красных цветов, но он неполон. Вы не учитываете значения G и B. Если они не 0, а, скажем, 1. Это тоже можно считать красным, со значениями R от 150 до 255. Поэтому вам нужно добавить свой список, пока в нем не появятся все оттенки красного. Я думаю, что это может быть весьма субъективным, чтобы установить диапазоны.
НО! Чтобы поместить все цвета, которые вы считаете красными, в список и выполнять итерацию по списку каждый раз, вы хотите проверить, является ли красный цвет совершенно неэффективным. Вместо этого установите диапазоны. Если, например, вы скажете, что каждый цвет со значением R больше 150 и значениями G и B меньше 20, решение может выглядеть следующим образом.
public bool isRed(Color pixelColor)
{
if (pixelColor.R > 0x96 && pixelColor.G < 0x14 && pixelColor.B < 0x14)
{
return true;
}
return false;
}
Вы проверяете R, G и B значения отдельно, если они находятся в диапазоне. R, G и B имеют тип байта. Вы можете использовать шестнадцатеричные значения, чтобы установить диапазоны.