待求解的問題
Δf=∇⋅v(x,y)=div(v(x,y)),∀(x,y)∈Ω,withf∣R∖Ω=f∗∣R∖Ω
其中R⊂R2 表示背景圖像區域,v(x,y)=(∂x∂I(x,y),∂y∂I(x,y))是前景圖片合併前的梯度,f:R2→R,表示合併後在Ω區域的灰度值函數,在目標區域的梯度要儘量接近合併前前景圖片的梯度,f∗表示合併後在Ω區域之外的灰度值函數,在邊界處灰度連續,即f∣R∖Ω=f∗∣R∖Ω。
擴大求解區域
爲了使用FFT求解,需要將求解區域擴大到整個背景圖像區域。擴充後問題的形式如下:
Δf(x,y)=∇⋅V(x,y)=div(V(x,y)),∀(x,y)∈Rand∇f(x,y)⋅n∣∂R=0
其中V(x,y)定義爲:
V(x,y)={v(x,y)∇I(x,y)if(x,y)∈Ωotherwise
∇f(x,y)⋅n∣∂R=0是黎曼邊界條件,n爲圖像邊界的外法向,等價於:
(∂x∂f(x,y),∂y∂f(x,y))⋅(1,0)=0,ifx=0∣∣x=W−1(∂x∂f(x,y),∂y∂f(x,y))⋅(0,1)=0,ify=0∣∣y=H−1
上述條件可轉換爲:
Vx=∂x∂I(x,y)=0,ifx=0∣∣x=W−1Vy=∂y∂I(x,y)=0,ify=0∣∣y=H−1
傅里葉變換
f(x,y)=WH1u=0∑W−1v=0∑H−1f(u,v)e−2πi(Wxu+Hyv)∂x∂f(x,y)=(W2πiu)f(u,v),∂y∂f(u,v)=(H2πiv)f(u,v)∂x2∂2f(x,y)=(W2πiu)2f(u,v),∂y2∂2f(x,y)=(H2πiv)2f(u,v)
上述計算公式對V(x,y)的分量分別計算也成立。
待求解的問題爲:
∂x2∂2f(x,y)+∂y2∂2f(x,y)=∂x∂Vx(x,y)+∂y∂Vy(x,y),(x,y)∈/∂R⇔((W2πiu)2+(H2πiv)2)f(u,v)=(W2πiu)Vx(u,v)+(W2πiv)Vy(u,v)(u=1,2,⋯,W−2,v=1,2,⋯,H−2)
化簡爲:
f(u,v)={(W2πiu)2+(H2πiv)2(W2πiu)Vx(u,v)+(W2πiv)Vy(u,v)mean(f(u,v))u=1,2,⋯,W−2,v=1,2,⋯,H−2otherwise
求得每一點得f(u,v)再用傅里葉逆變換得到f(x,y)。