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

Вниз

"экстраполяция" рисунка   Найти похожие ветки 

 
Virgo_Style ©   (2007-10-21 12:30) [0]

Задача следующая: есть картинка (если быть точным, то несколько картинок, сшитых в одну панораму), у которой рваные края. Для лучшего понимания - представьте себе фотографию с обгоревшими краями, лежащую на черной ткани.
Выглядит это не очень эстетично, надо сказать, но если в это безобразие вписать прямоугольник и по этому прямоугольнику ее обрезать, - то сплошь и рядом за кадром остается слишком много, что тоже обидно.

Есть идея заменить черный фон на некий градиент, чтобы синее небо наверху переходило в синий фон, зеленая трава снизу - в зеленый, бетонка справа в серый и так далее.

Вопрос в том, как это реализовать. Пока что я думаю ставить вручную ключевые точки, а потом подбирать МНК коэффициенты уравнения типа red(X,Y)=K0+Kx*X+Ky*Y (это простейший вариант, которым вряд ли удастся ограничиться), и подкладывать получившийся фон под картинку.

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


 
Jump   (2007-10-21 12:47) [1]

Ambient Light рулит...


 
vrem_   (2007-10-21 13:32) [2]

одну так сделаешь, а на будущее скажи чтоб не рвали.


 
@!!ex ©   (2007-10-21 17:03) [3]

Я бы делал градиент не для всего фона, а с учетом находящихся поблизости цветов картинки.
Строим два рисунка. ОДин - линейнас интерполяция цвета по вертикали, второй - по горизонтали. Потом смешиваем в один рисунок. получится примерное заполнение рисунка близкими цветами.


 
Virgo_Style ©   (2007-10-21 17:32) [4]

@!!ex ©   (21.10.07 17:03) [3]
Я бы делал градиент не для всего фона, а с учетом находящихся поблизости цветов картинки.


Я вроде бы о том же, градиент считается, исходя из заданных точкек рисунка. А два рисунка... зачем и как?


 
@!!ex ©   (2007-10-21 19:52) [5]

> А два рисунка... зачем и как?

Градиент по вертикали, градиент по горизонтали.
Или для каждого пикселя считать цвет исходя из множества соседних? не думаю, что будет гуд.


 
Virgo_Style ©   (2007-10-21 21:18) [6]

@!!ex ©   (21.10.07 19:52) [5]
Градиент по вертикали, градиент по горизонтали.


м-м-м... а на основе чего считать градиенты? Осреднять цвета по границам?

Моя идея такова: есть функции Red(X,Y), Green(X,Y), Blue(X,Y).
В простейшем случае
Red(X,Y) = Kr0+Krx*X+Kry*Y
Green(X,Y) = Kg0+Kgx*X+Kgy*Y
Blue(X,Y) = Kb0+Kbx*X+Kby*Y

Заданы точки (Xi,Yi) с цветами (Ri,Gi,Bi)

Методом наименьших квадратов подбираем коэффициенты K, после чего можем нарисовать наш градиент.

Конечно, можно не ограничиваться первыми степенями X и Y, но это уже следующий шаг.

Множество соседних нам не подойдет ни в каком виде,только рисунок размоет. Хотя, если считать цвет как среднее окружающих пикселей только для точек черного цвета, игнорируя окружающие черные точки... может в этом что-то и есть.


 
@!!ex ©   (2007-10-21 21:26) [7]

> м-м-м... а на основе чего считать градиенты? Осреднять цвета
> по границам?

Да. градиент дыры - на основе краев дыры.


 
vpbar ©   (2007-10-21 23:01) [8]

заштампуй в фотошопе или гимпе - быстрее будет.


 
Dimka Maslov ©   (2007-10-22 11:31) [9]

В фотошопе есть
Spot Healing Bruh Tool
Healing Brush Tool
Patch Tool
Clone Stamp Tool
и многое другое, вплоть до автоматической склейки панорам


 
Virgo_Style ©   (2007-10-22 13:30) [10]

вручную возни много. Особенно если я позднее захочу эту панораму подправить... Да и полтора десятка панорам вручную - это довольно много возни.

А фотошоп - это довольно недешево и опять-таки вручную.



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

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

Наверх




Память: 0.49 MB
Время: 0.037 c
15-1192827366
Nic
2007-10-20 00:56
2007.11.25
Какой регистратор лучше для...


2-1194122176
SveTTT
2007-11-03 23:36
2007.11.25
подсчет строк в DbGridEh


15-1192549756
vasIZmax
2007-10-16 19:49
2007.11.25
Вот не могу сообразить, как лучше сделать


2-1193726020
IntruderLab
2007-10-30 09:33
2007.11.25
FastReport 3.0 переменные


15-1193055255
Заблудившийся
2007-10-22 16:14
2007.11.25
Пожалуйста, помогите перевести строчку Perl кода на PHP код