Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Определение близкого к заданому цвету пикселя?


Автор: WaReZMEN 17.1.2008, 09:58
К примеру есть у меня картинка user posted image

мне нужно попикселно ее обработать так чтобы получилось вот так user posted image

Поясняю я пишу функцию каторая должна какбы из сближать цвет. тоесть кпримеру у меня есть один черный пиксель rgb(0,0,0) рялом есть еще один пиксель... да в принцепе даже не важно где он но мы знаешм что дето на кртинке есть еще пиксель rgb(1,1,1) или rgb(1,2,0)  так вот я хочу чтоб при проверки евляется ли он цветом rgb(0,0,0) возвращался из процедуры ответ true... ну и хочется чтоб в процедуру передоволось значение каторое будет говорить что еще пока можно брать этот цвет ... (ну кпримеру как в фотосшоте волшебная палочка работает там ведь коофичиент совпадения задается...) вот меня и интересует как это сделать?

Автор: Alexeis 17.1.2008, 10:09
Ну и чего тут сложного?

  Вычисляешь разницу между тестовым цветом TestColor и текущим цветом CurColor по формуле

  Dif := Abs(GetRColor(TestColor) - GetRColor(CurColor)) + Abs(GetGColor(TestColor) - GetGColor(CurColor)) + Abs(GetBColor(TestColor) - GetBColor(CurColor));

  Если Dif меньше определенного порога, то присваиваем тестовый цвет.

Вообще, если использовать ScanLine, то то составляющие цвета получаются автоматом (при цветовой схеме 24 бита на цвет) без GetXColor

Автор: WaReZMEN 17.1.2008, 11:41
Alexeis, спс а что за ScanLine ?

Автор: Alexeis 17.1.2008, 14:27
Цитата(WaReZMEN @  17.1.2008,  10:41 Найти цитируемый пост)
ScanLine 

  Свойство битмапа позволяющее получать прямой доступ к памяти картинки. Работает в сотни раз быстрее pixels[].

Автор: WaReZMEN 18.1.2008, 01:19
Alexeis, спасибо но мне сдесь скорость не важна smile

Автор: remax 18.1.2008, 04:24
Цитата(WaReZMEN @ 18.1.2008,  01:19)
Alexeis, спасибо но мне сдесь скорость не важна smile

А что плохого, когда при нужной функциональности еще и быстрее?  Ну, разве что религия не позволяет....  smile 

Автор: WaReZMEN 18.1.2008, 08:16
remax, Нет времяни расбиратся что там и как... к томуже картинка не 24 бита

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)