Изменения

Перейти к: навигация, поиск

Блендинг изображений

81 байт добавлено, 04:32, 9 января 2021
Блендинг Пуассона
==Блендинг Пуассона==
[[Файл:Poisson int1.png|thumb|right|300px|Рис. $1.1$. Пример перепада яркости при простой вставке]]
[[Файл:Poisson int2.png|thumb|right|300px|Рис. $1.2$. Результат применения блендинга Пуассона]]
 
todo Note: Блендинг Пуассона на самом деле является гармонизацией, так как требует маску заменяемых пикселей. Почему-то в статьях его называют блендингом (Poisson blending), хотя оригинальная статья называлась Poisson Image Editing<ref name="PGB03">[https://www.cs.jhu.edu/~misha/Fall07/Papers/Perez03.pdf Poisson Image Editing] Patrick Perez, Michel Gangnet, Andrew Blake (2003)</ref>
Простая вставка одного изображения поверх другого нередко влечет заметный перепад яркости на границе вставки(рис. $1.1$). Метод Пуассона заключается в сглаживании этого перепада (рис. $1.2$) с целью сделать дефект менее заметным, используя градиент вставляемого изображения и значения пикселей фонового изображения на границе вставки.
todo Note'''Замечание: ''' Для RGB изображений задача минимизации решается для каждого цветового канала отдельно.
Давайте обозначим за $AS$ изображение, которое служит фоном, а за $BI$ {{---}} изображение, вставляемое поверх $AS$.Область вставки будем задавать двоичной маской $M$, содержащей единицы в области наложения. Например:{| class="wikitable" style="background-color:#FFF; text-align:center"|-! Фоновое <br/> изображение $S$! Накладываемое <br/> изображение $I$! Маска $M$|-| [[Файл:Poisson_cat.jpg|200px]]| [[Файл:Poisson_cherry.jpg|200px]]| [[Файл:Poisson_cherry_mask.png|200px]]|}
Пусть $p$ {{---}} координаты пикселя двухмерного изображения (т.е. $(x, y)$). За $A_pImg_p$ {{---}} значения обозначим значение пикселя фонового изображение, с координатами $B_pp$ {{---}} значение пикселя вставляемого изображения$Img$. Пусть $\Omega$ {{---}} множество координат $p$, на которых определено вставляемое изображение что $BM_p = 1$. Тогда $\partial \Omega$ {{---}} координаты границы вставляемой области.
Пусть $N_p$ {{---}} множество соседей $p$ (максимум четыре пикселя, имеющих общую границу с $p$, т.е. пиксели со следующими координатами: $(x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)$). Для всех пар $<(p, q>)$ таких, что $q \in N_p$, введем $v_{pq} = B_p I_p - B_qI_q$
Обозначим результат блендинга за $O$. Так как мы хотим сделать результат бесшовным, пиксели $O_p$, где $p \in \partial\Omega$, сделаем равными $S_p$. Для того $p, q$ из внутренней части $\Omega$ постараемся найти такие значения, чтобы найти значение пикселей в месте наложения их разность была близка к $Bv_{pq}$, решаем . Для этого решим задачу минимизации:
$\underset{f_p,\; p \in \Omega}{\mathrm{min}}\; \underset{p, q \in \Omega}{\sum}\; (O_p - O_q - v_{pq})^2$, где $O_p = A_pS_p$ для $p \in \partial \Omega$
Заметим, что функция, которую мы хотим минимизировать, квадратична относительно переменных $O_p, p \in \Omega$. Для решения задачи минимизации вычислим частные производные по этим переменным и найдем значения переменных, при которых частные производные будут равны нулю.
Для $p \in \Omega$:  $\frac{\partial{\underset{p, q \in \Omega}{\sum}\; (O_p - O_q - v_{pq})^2}}{\partial O_p} = \underset{q \in N_p}{\sum} 2 (O_p - O_q - v_{pq}) - \underset{q \in N_p}{\sum} 2 (O_q - O_p - v_{qp}) = 2 \underset{q \in N_p}{\sum} 2 (O_p - O_q - v_{pq})$.
Приравнивая к нулю, получаем: $|N_p| O_p - \underset{q \in N_p}{\sum} O_q = \underset{q \in N_p}{\sum} v_{pq}$.
Для точек, граничащих с $\partial \Omega$: $\;|N_p| O_p - \underset{q \in N_p \cap \Omega}{\sum} O_q = \underset{q \in N_p \cap \partial \Omega}{\sum} A_q S_q + \underset{q \in N_p}{\sum} v_{pq}$. Решаем систему уравнений и получаем значения $O_p$ для $p \in \Omega$. todo: Поскольку система уравнений sparse symmetric positive-defined, можно использовать следующие итеративные алгоритмы: Gauss-Seidel, V-cycle multigrid. Заметим, что метод Пуассона сдвигает цвета накладываемого изображения и сохраняет свойства градиента (прям всегда? нужно подумоть), туду  Poisson blending для самых маленьких
https://erkaman.githubРешаем систему уравнений и получаем значения $O_p$ для пикселей $p$ из внутренности $\Omega$.io/postsДля решения систем такого вида могут быть использованы итеративные алгоритмы Gauss-Seidel и V-cycle multigrid<ref name="PGB03"/poisson_blending>.html
Another thing that we wish to remark is that even though poisson blending shifts the color of the source image, it still preserves the features of it. In the original source image, f4 is smaller than f3, f5 is greater than f4Mетод Пуассона сдвигает цвета накладываемого изображения, and so onсохраняя свойства градиента (то если $I_{p1}$ был меньше $I_{p2}$, and this also applies to our recovered image. This information was encoded by the gradients of the source image. Howeverто после преобразования $I_{p1}$ не станет больше $I_{p2}$), it is also important to realize that poisson blending does not exactly preserve the gradientsоднако значение само градиета может получиться другим. In the recovered image, the gradient f3,4 assumes the value 7−4=3, but it was 26−22<ref name=4 in the original source image'clear_poisson'>https://erkaman. In the previous section, the gradients of the recovered image were identical to the gradients of the original imagegithub. But with poisson blending, the gradients of a completely different image are pasted into another image, and the result of this is that the solver is not always able to recover an image whose gradients exactly match the specified gradientsio/posts/poisson_blending. But the solver tries to find an image whose gradients match as close as possible, and in practice, poisson html Poisson blending yields good results, which we shall show examples of in the following section.для самых маленьких</ref>
==Трансфер стиля==
128
правок

Навигация