Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Фильтр неравномерности яркости [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): « 1 [2] 3 4 »   

> Описание: фильтр для выравнивания яркости изображения,
Алтенрион
Отправлено: 23 Декабря, 2012 - 13:07:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


Помог: 0 раз(а)




NoPaper пишет:
Тогда можно "поизвращаться" Улыбка
Создать массив с данными о каждом пикселе ($arr[$x][$y]=array(red, green, blue))
найти среднее значение каждого цвета
все, что ярче - усреднить


Если работать именно с R G B, то мне кажется при усреднении будут меняться сами цвета, а не компонента отвечающая за яркость.

Иными словами просто усредняя полученный из пикселя цвет, мы модифицируем цвет. разве нет?
 
 Top
KingStar
Отправлено: 23 Декабря, 2012 - 13:27:03
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)





делаем Ps на php Радость Радость Радость , скоро возьмемся за OC

(Отредактировано автором: 23 Декабря, 2012 - 13:29:36)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
Алтенрион
Отправлено: 23 Декабря, 2012 - 13:30:58
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


Помог: 0 раз(а)




KingStar пишет:

делаем Ps на php Радость Радость Радость


Ну Ps конечно не получится, но фильтр как онлайн сервис замутить нужно. Если интересно, то совершенно не коммерческие цели.
 
 Top
DlTA
Отправлено: 23 Декабря, 2012 - 19:28:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Алтенрион пишет:
просто как с гистограммами работать в php я не в курсе
так же как и на всех остальных языках в мире,
объявляем массив целых положительных чисел длинной 256 элеметнов пробегаемся по каждому пикселю изображения получаем его яркость, обычно это значение в пределах 0-255
и соответствующую ячейку массива инкрементируем
в итоге мы получаем заполненный массив, что и есть гистограмма.

теперь нужно ее преобразовать, выкинуть те участки где есть "пустышки" (ячейки с нулевым количеством или очень маленькие значения) а то что останется растянуть так чтоб в итоге у нас получалась максимально заполненая кривая без пробелов, см. первый и второй рис.

ну а дальше делаем обратное преобразование изображение
пробегаемся по всем пикселям изображения, получаем его яркость, смотрим куда оно попадало раньше и куда должно попасть теперь и изменяем эту ярскость тоесть записываем иное значение(+ преобразуем обратно в RGB)
собсно и все.

как видите как таковой пыхи тут и нет, а точнее пофигу на чем делать
алгоритм и наглядные графики выложил, вам осталось найти формулы преобразования из RGB в LAB и обратно, а для всего остального осталось немного пораскинуть моцком. удачи.
 
 Top
Алтенрион
Отправлено: 23 Декабря, 2012 - 19:38:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


Помог: 0 раз(а)




В итоге работа переходит из разряда кода, в разряд поиска или разработки математического алгоритма фильтра... ух как меня это еще на с++ бесило... какж неохото тоже самое воротить на php...
 
 Top
DlTA
Отправлено: 23 Декабря, 2012 - 19:56:55
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Алтенрион пишет:
из разряда кода, в разряд поиска или разработки математического алгоритма
а что вы тогда делаете в программировании? (риторический вопрос)
 
 Top
Алтенрион
Отправлено: 23 Декабря, 2012 - 20:13:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


Помог: 0 раз(а)




Да не в этом суть, просто есть же библиотеки для работы с графикой, их нельзя применить в каком либо виде?
 
 Top
DlTA
Отправлено: 23 Декабря, 2012 - 20:29:46
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




http://php.su/functions/?cat=image
как найдете сообщите, чтоб и я знал
 
 Top
Алтенрион
Отправлено: 23 Декабря, 2012 - 21:19:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


Помог: 0 раз(а)




тут про гистограммы есть материал.
[url]_http://mapexpert.com.ua/index_ru.php?table=Menu&id=26[/url]

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

Я уж попытаюсь что либо наколдовать, или вместе по колдуем, потом статейку на форуме сделаем полноценную?

(Отредактировано автором: 23 Декабря, 2012 - 21:33:08)

 
 Top
DlTA
Отправлено: 23 Декабря, 2012 - 21:48:36
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




... (нецензурная брань)

пишите сразу в раздел "напишите за меня", это хоть честно будет.
(Добавление)
Алтенрион пишет:
http://mapexpert.com.ua/index_ru.php?table=Menu&id=26
нафига вам методы поиска границ и прочей лабуды?! это высший пилотаж, и явно не для тех кто не может закодить простые вещи.
 
 Top
NoPaper
Отправлено: 23 Декабря, 2012 - 21:52:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


Помог: 9 раз(а)




Алтенрион пишет:
Если работать именно с R G B, то мне кажется при усреднении будут меняться сами цвета, а не компонента отвечающая за яркость.

Иными словами просто усредняя полученный из пикселя цвет, мы модифицируем цвет. разве нет?

Погуглив, узнал, что яркость определяется так: I = 0.11R+0.59G+0.30B
Обратно получить значения rgb не получится.

Немного переделал скрипт, подсунул цветные картинки.

Вот картинки обработаны родной функцией imagefilter _https://docs.google.com/open?id=0BxG_9AZqsNLZWGdQLWotMzVQZzQ
А вот по моему алгоритму_https://docs.google.com/open?id=0BxG_9AZqsNLZT3hlQ1RGZVhmcHc

Результат разный
 
 Top
DlTA
Отправлено: 23 Декабря, 2012 - 21:59:07
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




NoPaper пишет:
Обратно получить значения rgb не получится.

вы ж еще 2 компонены цвета потеряли.
 
 Top
NoPaper
Отправлено: 23 Декабря, 2012 - 22:09:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


Помог: 9 раз(а)




DlTA пишет:
NoPaper пишет:
Обратно получить значения rgb не получится.

вы ж еще 2 компонены цвета потеряли.

a и b ?
 
 Top
Алтенрион
Отправлено: 23 Декабря, 2012 - 22:30:57
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


Помог: 0 раз(а)




NoPaper пишет:
Немного переделал скрипт, подсунул цветные картинки.

Вот картинки обработаны родной функцией imagefilter _https://docs.google.com/open?id=0BxG_9AZqsNLZWGdQLWotMzVQZzQ
А вот по моему алгоритму_https://docs.google.com/open?id=0BxG_9AZqsNLZT3hlQ1RGZVhmcHc



Второй вариант на мой взгляд очень близок к правде. Как задается коэффициент?
 
 Top
NoPaper
Отправлено: 23 Декабря, 2012 - 22:53:10
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


Помог: 9 раз(а)




Сначала в цикле все пиксели переносятся в массив, там же рассчитывается среднее значение red, green и blue (тупо сложить все значение определенного цвета и поделить на кол-во пикселей).

Второй цикл сравнивает каждый пиксель со средним значением, и, если значения rgb сильно расходятся со средним, цвет пикселя делается менее ярким.

Вот картинки вместе со скриптом _https://docs.google.com/folder/d/0BxG_9AZqsNLZN2U0d05tQkFwUTA/edit
 
 Top
Страниц (4): « 1 [2] 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB