2013-02-09 2 views
0

У меня есть фотография, которую я загружаю в растровое изображение. Я проверяю цвет некоторых пикселей. Но на картинке иногда что-то, что должно быть, например, красное, - это немного больше marron, magenta, orange и т. Д. Из-за света и других факторов. Я использую метод getPixel (x, y), который возвращает значение int для Color. Есть ли возможность проверить, находится ли это значение int в интервале, который определяет цвета, похожие на красный. Или какой-либо сайт или что-то еще, где я могу найти описания или описания цветов?Android Bitmap: getPixel() color

ответ

1

Да. От http://developer.android.com/reference/android/graphics/Color.html целое число Color имеет формат 0xffRRGGBB. (Ff фактически является альфа-каналом, то есть непрозрачностью, но обычно непрозрачным, следовательно, ff).

Существует множество сайтов, которые позволят вам ввести такие значения, чтобы посмотреть на цвет - например, http://www.colourchart.net/. Вы можете выбрать внешние границы каждого цветового компонента.

Вы также можете использовать Color.colorToHSV(), который позволит вам указать границы с точки зрения оттенка, насыщенности и яркости вместо красного, зеленого и синего - это может быть логически проще в вашем контексте.

+0

Спасибо, я думаю, этот сайт будет очень полезен для меня !! – Ziva

+0

Нет проблем. Если вы счастливы, пожалуйста, примите ответ! –

1

Basicall RGB не подходит для сравнения цветов, но есть хорошая цветовая модель под названием HSV. Поэтому вы должны преобразовать значение RGB в HSV, а затем сравнить значение оттенка цветов с порогом.

Например Hue значения зеленого цвета 120, но вы можете принимать значения в диапазоне от 90 до 150.

Этой ссылка показывает, как конвертировать между цветовым modells: http://www.cs.rit.edu/~ncs/color/t_convert.html

Более подробной информацией о HSV modell: http://en.wikipedia.org/wiki/HSL_and_HSV

Смежные вопросы