Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
15-1145596344
Ega23
2006-04-21 09:12
2006.05.21
С Днём рождения! 21 апреля


2-1146207157
gerakla
2006-04-28 10:52
2006.05.21
Помогите мну


1-1144913139
pvm
2006-04-13 11:25
2006.05.21
Экспорт из DLL


2-1146810975
Близнец
2006-05-05 10:36
2006.05.21
Использование в запросе таблиц двух разных БД


2-1146630768
TaSk
2006-05-03 08:32
2006.05.21
Обработка ошибок и TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский