Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.21;
Скачать: CL | DM;

Вниз

"Упрощение" цветов на фотографии   Найти похожие ветки 

 
Kot Andrei ©   (2005-12-17 11:00) [0]

Не знаю смогу ли популярно объяснить свою задачу, но попробую.
Предположим есть фотография лица человека. Необходимо цвет кожи лица свести к одному цвету, родинку на лице (если она есть) - к другому, цвет глаз тоже сделать равномерным, и равным преобладающему на участке глаз цвету (например белому, а в центре (зрачок) коричневым).
Вообщем надо находить участки изображения цвет внутри которых приблизительно находится в одной цветовой гамме и приводить этот участок к цвету преобладающему на этом участке. Как привести цвета к одному внутри участка, я разберусь, а вот с алгоритмом поиска самого участка - проблемы... Может кто-то занимался чем-то подобным когда-то и поможет мне своими соображениями....


 
The_scorpion ©   (2005-12-17 12:16) [1]

Задаешь возможное отклонение (допустим +- $FF) при котором цвета не различимы. Перебираешь массив пикселей, ищешь элемент не принадлежащий ни одному участку. Формируешь из этого пикселя новый участок. Просматриваешь окр его 8 пикселей,  смотришь различимы ли цвета у них(по отношению к центральному), если  не различимы цвета(условие +- $FF), то добавляешь этот пиксель в участок центрального пикселя(Если добавляющийся пиксель уже принадлежит другому участку, то добавляешь не один это пиксель, а весь участок к которому он принадлежит!!!).
P.S. Алгоритм набросал минут за 20, возможны неточности. Спрашивай если что-то не так.


 
XCoder ©   (2005-12-17 17:15) [2]

Можно составить таблицу цветов с определенным шагом. Потом значение каждого цвета округлять до ближайшего в таблице.

ЗЫ. Советую использовать ScanLine, а то чере c := pixrls[x,y] ужасно медленно работает


 
The_scorpion ©   (2005-12-17 19:20) [3]


> Можно составить таблицу цветов с определенным шагом. Потом
> значение каждого цвета округлять до ближайшего в таблице.
>

какая размерность будет у этой таблицы ты знаешь?...
Если количество чисел $FFFFFFFF, если возьмем отклонение $10(а это очень много!), то получим размерность $1000000, в каждом элементу по dword получаем $400 0000 байт. Массив в 64 метра!!!!...
Попробуй по программируй на 486, тогда научишься ценить ресурсы системы.


 
programania ©   (2005-12-18 01:02) [4]

>Может кто-то занимался чем-то подобным когда-то и поможет мне своими соображениями....

я сделал что-то похожее для увеличения резкости
ведь если области будут одного но разного цвета то переход между ними будет резким
как это выглядит можно посмотреть
http://programania.com/ENJOL.ZIP    850кб
надо указать картинки нажать E и установить регуляторы резкости в положения
уровень=вправо радиус=вправо unsharp mask=влево порог=влево до упора
получится типа рисунка из одноцветных областей с резкими границами


 
Kot Andrei ©   (2005-12-19 09:47) [5]

Всем огромное спасибо за внимание, и естесственно за идеи!
И БОЛЬШАЯ просьба к programania поделиться исходниками!
Или, если секрет, то хотя бы той частью исходников, в которых прописаны события на указанные Вами регуляторы.
З.Ы. Ранее никогда не занимался с графикой\рисунками - хотелось бы для начала взглянуть на что нибудь готовое. Сразу хочу сказать тем кто меня начнет пинать за просьбу получить готовые исходники: Выделение одноцветных регионов это лишь сотая часть задачи которую я хочу решить, и нужны они мне только лишь для того чтобы чему-то научиться и проанализировать...


 
programania ©   (2005-12-19 20:41) [6]

Вот текст модуля обработки изображения в котором
удаление шумов, увеличение резкости 2-ух видов
осветление теней, цветовой баланс
контрастность, гамма, оценка размера jpg
http://programania.com/edi.zip    7кб
Однако интереснее подумать как улучшить картинку
используя другие подобные или
как из 2-ух плохих картинок сделать 1 хорошую.
или после "Упрощения" цветов добавить текстуру
соответствующую цвету чтоб выглядело
резко и натурально


 
имя   (2005-12-26 10:11) [7]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2006.05.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.04 c
3-1143189457
VitaWED
2006-03-24 11:37
2006.05.21
SQL Server и большие объемы


2-1146561020
Юнкер
2006-05-02 13:10
2006.05.21
Как лучше зашифровать?


2-1146911279
alk
2006-05-06 14:27
2006.05.21
Вывод одного и тогоже поля в разные столбцы dbgrid


2-1146693377
Std
2006-05-04 01:56
2006.05.21
Распаковка Zlib


3-1143788084
Alex_12345
2006-03-31 10:54
2006.05.21
JET 4.0 - правила использования....