Форум: "Media";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Вниз"Упрощение" цветов на фотографии Найти похожие ветки
← →
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 вся ветка
Форум: "Media";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c