Блендинг изображений — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Определение блендинга)
(Пуассон)
Строка 5: Строка 5:
  
 
==Пуассон==
 
==Пуассон==
 +
Простая вставка одного изображения поверх другого нередко влечет заметный перепад яркости на границе вставки. Метод Пуассона заключается в сглаживании этого перепада с целью сделать дефект менее заметным.
 +
 +
Давайте обозначим за $A$ изображение, которое служит фоном, а за $B$ {{---}} изображение, вставляемое поверх $A$. $\partial B$ {{---}} граница вставляемой области.
 +
 +
Обозначим координаты пикселя двухмерного изображения $p$ (т.е. $(x, y)$). $A_p$ {{---}} значения пикселя фонового изображение, $B_p$ {{---}} значение пикселя вставляемого изображения. Пусть $\Omega$ {{---}} множество координат $p$, на которых определено вставляемое изображение $B$.
 +
 +
Пусть $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 - B_q$
 +
 +
Обозначим результат за $O$. Для того чтобы найти значение пикселей при наложении $B$, решаем задачу минимизации:
 +
 +
$\underset{f_p,\; p \in \Omega}{\mathrm{min}}\; \underset{p, q \in \Omega}{\sum}\; (O_p - O_q - v_{pq})^2$, где $O_p = B_p$ для $p \in \partial \Omega$
 +
 
==Глубокий блендинг==
 
==Глубокий блендинг==
 
==Гармонизация==
 
==Гармонизация==

Версия 16:54, 3 января 2021

Определение:
Блендингом изображений (англ. image blending) называют метод, позволяющий наложить часть одного изображения поверх другого таким образом, чтобы композиция изображений выглядела естественно, без швов на границах вставки.
  • картинка*

Пуассон

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

Давайте обозначим за $A$ изображение, которое служит фоном, а за $B$ — изображение, вставляемое поверх $A$. $\partial B$ — граница вставляемой области.

Обозначим координаты пикселя двухмерного изображения $p$ (т.е. $(x, y)$). $A_p$ — значения пикселя фонового изображение, $B_p$ — значение пикселя вставляемого изображения. Пусть $\Omega$ — множество координат $p$, на которых определено вставляемое изображение $B$.

Пусть $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 - B_q$

Обозначим результат за $O$. Для того чтобы найти значение пикселей при наложении $B$, решаем задачу минимизации:

$\underset{f_p,\; p \in \Omega}{\mathrm{min}}\; \underset{p, q \in \Omega}{\sum}\; (O_p - O_q - v_{pq})^2$, где $O_p = B_p$ для $p \in \partial \Omega$

Глубокий блендинг

Гармонизация

 fun Harmonization(
   I,   // Входное изображение 
   M,   // Маска 
   S    // Стилевое изображение 
 ):
     // Тут будет комментарий 
   I' := SinglePassHarmonization(I, M, S, IndependentMapping)
     // Тут тоже 
   O  := SinglePassHarmonization(I', M, S, ConsistentMapping)
   return O
 fun SinglePassHarmonization(
   I,   // Входное изображение 
   M,   // Маска 
   S,   // Стилевое изображение 
   $\pi$   // Neural mapping function todo: translate this shit 
 ):
   F_I := ComputeNeuralActivations(I)
   F_S := ComputeNeuralActivations(S)
   P := $\pi$(F_I, M, F_S)
   O := Reconstruct(I, M, S, P)

   return O