Сжатие пикселей или ручной антиалиасинг

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сжатие пикселей или ручной антиалиасинг

Сообщение MIT » 30.12.2009 (Ср) 18:18

Никак не могу додуматься до реализации сабжа.

Что делать, в общем, ясно:
Изображение
Где желтая линия - первоначальная строка пикселей; зеленая - конечная; серые линии - края пикселя; красные - линии переноса.

Одна проблема: не могу описать алгоритм.
Мысли крутятся около такой последовательности действий:
1) Создаем аккамулятор для сохранения сдвига (в данном случае сдвиг равен примерно 0.2)
2) Проходим циклом от (в данном случае) 3 до 18
3) В каждом проходе берем пиксель, умножаем его каналы на X, прибавляем у нему следующий пиксель, уаналы которого умножаем на Y (чему равны X и Y - не знаю :? )

Но есть моменты, реализацию которых я вообще не могу придумать:
- что делать, когда в один пиксель надо упихать 3 или, скажем, 8 штук?
- что делать, когда надо растягивать, а не сжимать изображение?

Может кто знает теорию на тему, почитать что б? Мозг работать отказывается, а реализовать эту задумку все же надо.




[offtop]
  1. Исходная картинка
  2. ????
  3. PROFIT!
[/offtop]
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Сжатие пикселей или ручной антиалиасинг

Сообщение Хакер » 30.12.2009 (Ср) 18:36

Даже не знаю, что ответить.
Ок. Попробуем с этой стороны. Хорошо.


Одна проблема: не могу описать алгоритм.

Алгоритм чего?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Сжатие пикселей или ручной антиалиасинг

Сообщение MIT » 30.12.2009 (Ср) 18:46

Алгоритм подбора первоначальных пикселей. Т.е. какие пиксели при очередной итерации цикла брать из первоначальной "строки" пикселей, на какой коэффициент каждый из них умножать что бы получился один выходной пиксель.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Сжатие пикселей или ручной антиалиасинг

Сообщение Хакер » 30.12.2009 (Ср) 18:48

Тебя интересует алогоритм стретчинга с антиалиасингом вообще, или тебя интересует только алгоритм распределения между некратными величинами?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Сжатие пикселей или ручной антиалиасинг

Сообщение MIT » 30.12.2009 (Ср) 19:01

Первый в общем и второй сейчас в частности.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Сжатие пикселей или ручной антиалиасинг

Сообщение Хакер » 30.12.2009 (Ср) 19:02

Алгоритм распределения некоторого числа элементов по некратому числу ячеек = алгоритм Брезенхема.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Сжатие пикселей или ручной антиалиасинг

Сообщение Debugger » 30.12.2009 (Ср) 19:06

MIT писал(а):Алгоритм подбора первоначальных пикселей. Т.е. какие пиксели при очередной итерации цикла брать из первоначальной "строки" пикселей, на какой коэффициент каждый из них умножать что бы получился один выходной пиксель.

Схема.png
Схема.png (2.29 Кб) Просмотров: 947

Если a и b - расстоянии до пикселей, то коэффициенты x и y равны:
Математическая формула: x={a\over\(a+b)}
Математическая формула: y={b\over\(a+b)}
Что-то такое.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Сжатие пикселей или ручной антиалиасинг

Сообщение Proxy » 31.12.2009 (Чт) 4:21

Думаю актуально будет для 3х исходных пиксела. найти 3 ближайших (A,B,C) и исходить из расстояния от каждого до точки X. Т.е. примерно так:
D = |XA|+|XB|+|XC|;
F1 = |XA| / D;
F2 = |XB| / D;
F3 = |XC| / D;
цветовые компаненты точки X:
Px(i)=Pa(i)*F1 + Pb(i)*F2 + Pc(i)*F3; где i=1,2,3,4 для R, G, B, Alpha

Вот как-то так.
Зы. LaTeX позже освою.
Follow the white rabbit.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Сжатие пикселей или ручной антиалиасинг

Сообщение alibek » 31.12.2009 (Чт) 9:37

Зачем изобретать велосипед, если Хакер уже дал правильный ответ?
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 60

    TopList