Poisson Image Editing
文章目录
- Poisson Image Editing
-
- Poisson solution to guided interpolation
- Seamless cloning
前面的文章详细地解读了抠图方面的论文 Poisson Matting,接下来将解读与泊松抠图互为 逆过程的泊松融合算法,与泊松抠图一样,泊松融合的核心也是对满足狄利克雷边界的泊松方程的求解。
Poisson solution to guided interpolation
如下图所示,首先我们定义插值问题:
SSS:是用于融合的背景区域
Ω\OmegaΩ:用于融合的前景区域
?Ω\partial \Omega?Ω:前景区域的边界
f?f^{*}f?:背景区域的函数值或者说是像素值
fff:前景区域的函数值,未知
v\mathbf{v}v:前景区域的梯度场
ggg:为前景区域的函数值
因此可以将求解Ω\OmegaΩ内函数值fff的定义为如下最小化问题:
min?f?Ω∣?f∣2with f∣?Ω=f?∣?Ω(1)\min _{f} \iint_{\Omega}|\nabla f|^{2} \text { with }\left.f\right|_{\partial \Omega}=f^{*} \mid \partial \Omega\tag{1} fmin??Ω?∣?f∣2 with f∣?Ω?=f?∣?Ω(1)
其中?=[??x,???y]\nabla=\left[\frac{\partial}{\partial x}, \frac{\partial \cdot}{\partial y}\right]?=[?x??,?y???]为梯度算子,且以上最小化问题的求解需要满足如下狄利克雷边界条件的拉普拉斯方程:
Δf=0over Ωwith f∣?Ω=f?∣?Ω(2)\Delta f=0 \text { over } \Omega \text { with }\left.f\right|_{\partial \Omega}=\left.f^{*}\right|_{\partial \Omega}\tag{2} Δf=0 over Ω with f∣?Ω?=f?∣?Ω?(2)
其中Δ.=?2?x2+?2?y2\Delta .=\frac{\partial^{2}}{\partial x^{2}}+\frac{\partial^{2}}{\partial y^{2}}Δ.=?x2?2?+?y2?2?为拉普拉斯算子。
以上最小化问题的求解并不能得到令人满意的图像插值结果,而我们已知前景区域的梯度向量场v\mathbf vv,即将式(1)所示的最小化问题转化为:
min?f?Ω∣?f?v∣2with f∣?Ω=f?∣?Ω(3)\min _{f} \iint_{\Omega}|\nabla f-\mathbf{v}|^{2} \text { with }\left.f\right|_{\partial \Omega}=\left.f^{*}\right|_{\partial \Omega}\tag{3} fmin??Ω?∣?f?v∣2 with f∣?Ω?=f?∣?Ω?(3)
将式(1)中对函数fff的约束方式实际上是在约束Ω\OmegaΩ区域的平滑性,因此插值出来的结果会相当模糊,而式(3)中的即约束了?Ω\partial \Omega?Ω区域过度的平滑性,也约束了Ω\OmegaΩ区域内函数梯度场与原梯度场v\mathbf vv间的相似性,此方程的解是满足以下狄利克雷边界条件的泊松方程:
Δf=div?vover Ω,with f∣?Ω=f?∣?Ω\Delta f=\operatorname{div} \mathbf{v} \text { over } \Omega, \text { with }\left.f\right|_{\partial \Omega}=f^{*} \mid \partial \Omega Δf=divv over Ω, with f∣?Ω?=f?∣?Ω
其中div?v=?u?x+?v?y\operatorname{div} \mathbf{v}=\frac{\partial u}{\partial x}+\frac{\partial v}{\partial y}divv=?x?u?+?y?v?,上式即是基于泊松方程的图像融合的核心理论,其中也将梯度场v\mathbf vv称为导向场(guidence field)
Seamless cloning
在以上对泊松抠图的理论描述中,为理解方便,我直接采用了泊松融合的字眼,但原论文将其描述为一个统一的图像处理框架,将其称为泊松插值,而泊松融合也是以上泊松插值框架的在图像处理中最常见的应用,其中有两种导向梯度场的计算方式:
- Importing gradients:直接选择前景区域的梯度作为导向梯度:
v=?g\mathbf v = \nabla g v=?g - Mixing gradients:保留Ω\OmegaΩ区域中f?、gf^{*}、gf?、g中梯度幅度最大的梯度向量:
x∈Ω,v(x)={?f?(x)if ∣?f?(x)∣>∣?g(x)∣?g(x)otherwise. \mathbf{x} \in \Omega, \mathbf{v}(\mathbf{x})=\left\{\begin{array}{ll} \nabla f^{*}(\mathbf{x}) & \text { if }\left|\nabla f^{*}(\mathbf{x})\right|>|\nabla g(\mathbf{x})| \\ \nabla g(\mathbf{x}) & \text { otherwise. } \end{array}\right. x∈Ω,v(x)={ ?f?(x)?g(x)? if ∣?f?(x)∣>∣?g(x)∣ otherwise. ?
下列的图像即是泊松融合在各种具体的图像处理问题中的应用。