Форум: "Начинающим";
Текущий архив: 2011.04.10;
Скачать: [xml.tar.bz2];
ВнизЦвет TBitmap Найти похожие ветки
← →
Неважно (2010-12-30 13:20) [0]Имеется TBitmap небольшого размера. На нем может быть что-то нарисовано в двух цветах (черный и белый). Мне необходимо получить TRUE, если на нем преобладает черный цвет и FALSE, если преобладает белый.
Как решить подобную задачу?
← →
Ega23 © (2010-12-30 13:27) [1]
> Как решить подобную задачу?
Посчитать количество Сил Тьмы, подсчитать количество Сил Света, сравнить по своему критерию "преобладания".
← →
Неважно (2010-12-30 13:31) [2]А как получать эти силы?
По пиксельно? Определять цвет всех пикселей моего битмапа? Или как-то иначе (по нескольким пикселам)?
← →
Ega23 © (2010-12-30 13:33) [3]
> По пиксельно
Естественно. Есть другие варианты?
← →
Неважно (2010-12-30 13:39) [4]Ну, мало ли. Я бы предпочел пройтись "крестом". Как бы действий меньше и быстрее, вероятно.
← →
Dimka Maslov © (2010-12-30 13:44) [5]У каждого битмапа есть св-во сканлине
← →
Ega23 © (2010-12-30 13:46) [6]
> пройтись "крестом".
А какая хрен разница, как перебирать пикселы? Всё равно тебеих все придётся перебрать (точнее, не все, а как критерий преобладания будет достигнут).
А справа налево, слева направо, по синусоиде или буквой зю - без разницы.
← →
Неважно (2010-12-30 13:57) [7]Понял. А еще вопрос.
Поимел я цвет пиксела. Преобразовал в RGB.
А далее? Там вроде как была какая-то формула определения цвета в черное или белое? Что-то там сравнивается со значением 100. Это к тому, а вдруг у меня там серый, желтый и т.д. Как оттенок цвета ГРУБО преобразовать в белый или черный?
← →
Andy BitOff © (2010-12-30 14:05) [8]
> нарисовано в двух цветах (черный и белый)
> а вдруг у меня там серый, желтый и т.д.
Эта как?
← →
Anatoly Podgoretsky © (2010-12-30 14:48) [9]> Неважно (30.12.2010 13:57:07) [7]
Не надо ля ля, нам не тяжело привести твою цитату
"На нем может быть что-то нарисовано в двух цветах (черный и белый"
← →
RWolf © (2010-12-30 15:01) [10]google "RGB to YUV".
← →
Серый (2010-12-30 16:42) [11]R, G, B: byte;
D: word;
D := High(byte) * 3 div 2;
R + G + B < D - темный
R + G + B >= D - светлый
← →
Неважно (2010-12-30 17:45) [12]Спасибо.
Я где-то нашел такой вариант:
Color:= Bmp.Canvas.Pixels[Bmp.Height-I,I];
Gray:= (GetRValue(Color) + GetGValue(Color) + GetBValue(Color)) div 3 ;
if Gray> 100 then ...
← →
Jeer © (2010-12-30 17:56) [13]Можно использовать вероятностный метод.
Сделать рандом-координатную выборку около 50% пикселей.
← →
Студент (2011-01-09 06:47) [14]
> Как оттенок цвета ГРУБО преобразовать в белый или черный?
Можно грубо преобразовать в оттенки серого:
Если равно 0 - то чёрный;
Если равно 255 - то белый;
Если значение получилось между ними - то серый цвет;
Можно в процентах сделать: ( ( ( R + G + B) / 3 ) * 100) Div 255
← →
Студент (2011-01-09 06:48) [15]Что-то не напечаталось...
>> Можно грубо преобразовать в оттенки серого: (R + G + B) / 3
← →
Anatoly Podgoretsky © (2011-01-09 10:34) [16]> Студент (09.01.2011 06:47:14) [14]
У тебя получается, что яркость красного равна яркости синего.
← →
Студент (2011-01-09 13:51) [17]В модели RGB нету понятий яркости и.т.п.))
А в градациях серого - это когда все три составляющие равны...
Самый быстрый (хоть и грубоватый) способ сделать картинку чёрно-белой - это среднеарифметическое...
← →
RWolf © (2011-01-09 16:57) [18]может, всё же погуглить "RGB to YUV"?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.04.10;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c