FFT解泊松方程

Pérez, Patrick, Gangnet M , Blake A . Poisson image editing[J]. ACM Transactions on Graphics, 2003, 22(3):313.

上一篇:泊松融合筆記

  1. 待求解的問題
    Δf=v(x,y)=div(v(x,y)),(x,y)Ω,withfRΩ=fRΩ\Delta f=\nabla\cdot v(x,y)=div(v(x,y)),\forall (x,y)\in\Omega,with\quad f|_{\mathscr{R}\setminus\Omega}=f^*|_{\mathscr{R}\setminus\Omega}
    其中RR2\mathscr{R}\subset R^2 表示背景圖像區域,v(x,y)=(I(x,y)x,I(x,y)y)v(x,y)=(\frac{\partial I(x,y)}{\partial x},\frac{\partial I(x,y)}{\partial y})是前景圖片合併前的梯度,f:R2Rf:R^2\rightarrow R,表示合併後在Ω\Omega區域的灰度值函數,在目標區域的梯度要儘量接近合併前前景圖片的梯度,ff^*表示合併後在Ω\Omega區域之外的灰度值函數,在邊界處灰度連續,即fRΩ=fRΩf|_{\mathscr{R}\setminus\Omega}=f^*|_{\mathscr{R}\setminus\Omega}

  2. 擴大求解區域
    爲了使用FFT求解,需要將求解區域擴大到整個背景圖像區域。擴充後問題的形式如下:
    Δf(x,y)=V(x,y)=div(V(x,y)),(x,y)R andf(x,y)nR=0\Delta f(x,y)=\nabla\cdot V(x,y)=div(V(x,y)),\forall (x,y)\in\mathscr{R}\,and\quad \nabla f(x,y) \cdot \vec n|_{\partial\mathscr{R}}=0
    其中V(x,y)V(x,y)定義爲:
    V(x,y)={v(x,y)if(x,y)ΩI(x,y)otherwise V(x,y) = \begin{cases} v(x,y)& if\quad (x,y)\in \Omega \\ \nabla I(x,y) &otherwise \end{cases}
    f(x,y)nR=0\nabla f(x,y) \cdot \vec n|_{\partial\mathscr{R}}=0是黎曼邊界條件,n\vec n爲圖像邊界的外法向,等價於:
    (f(x,y)x,f(x,y)y)(1,0)=0,ifx=0x=W1(f(x,y)x,f(x,y)y)(0,1)=0,ify=0y=H1 (\frac{\partial f(x,y)}{\partial x},\frac{\partial f(x,y)}{\partial y}) \cdot (1,0)=0 ,if \quad x=0||x=W-1 \\ (\frac{\partial f(x,y)}{\partial x},\frac{\partial f(x,y)}{\partial y}) \cdot (0,1)=0 ,if \quad y=0||y=H-1
    上述條件可轉換爲:
    Vx=I(x,y)x=0,ifx=0x=W1Vy=I(x,y)y=0,ify=0y=H1 V^x=\frac{\partial I(x,y)}{\partial x}=0 ,if \quad x=0||x=W-1 \\ V^y=\frac{\partial I(x,y)}{\partial y}=0 ,if \quad y=0||y=H-1

  3. 傅里葉變換
    f(x,y)=1WHu=0W1v=0H1f(u,v)e2πi(xuW+yvH)f(x,y)x=(2πiWu)f(u,v),f(u,v)y=(2πiHv)f(u,v)2f(x,y)x2=(2πiWu)2f(u,v),2f(x,y)y2=(2πiHv)2f(u,v) f(x,y)=\frac{1}{WH}\sum_{u=0}^{W-1}\sum_{v=0}^{H-1}f(u,v)e^{-2\pi i(\frac{xu}{W}+\frac{yv}{H})} \\ \frac{\partial f(x,y)}{\partial x}=(\frac{2\pi i}{W}u)f(u,v),\frac{\partial f(u,v)}{\partial y}=(\frac{2\pi i}{H}v)f(u,v) \\ \frac{\partial^2 f(x,y)}{\partial x^2}=(\frac{2\pi i}{W}u)^2f(u,v), \frac{\partial^2 f(x,y)}{\partial y^2}=(\frac{2\pi i}{H}v)^2f(u,v)
    上述計算公式對V(x,y)V(x,y)的分量分別計算也成立。
    待求解的問題爲:
    2f(x,y)x2+2f(x,y)y2=Vx(x,y)x+Vy(x,y)y,(x,y)R((2πiWu)2+(2πiHv)2)f(u,v)=(2πiWu)Vx(u,v)+(2πiWv)Vy(u,v)(u=1,2, ,W2,v=1,2, ,H2) \frac{\partial^2 f(x,y)}{\partial x^2}+\frac{\partial^2 f(x,y)}{\partial y^2}=\frac{\partial V^x(x,y)}{\partial x}+\frac{\partial V^y(x,y)}{\partial y},(x,y)\notin {\partial \mathscr{R}} \\ \Leftrightarrow \\ ((\frac{2\pi i}{W}u)^2+(\frac{2\pi i}{H}v)^2)f(u,v)=(\frac{2\pi i}{W}u)V^x(u,v)+(\frac{2\pi i}{W}v)V^y(u,v) \\ (u=1,2,\cdots,W-2,v=1,2,\cdots,H-2)
    化簡爲:
    f(u,v)={(2πiWu)Vx(u,v)+(2πiWv)Vy(u,v)(2πiWu)2+(2πiHv)2u=1,2, ,W2,v=1,2, ,H2mean(f(u,v))otherwise f(u,v) = \begin{cases} \frac{(\frac{2\pi i}{W}u)V^x(u,v)+(\frac{2\pi i}{W}v)V^y(u,v)}{ (\frac{2\pi i}{W}u)^2+(\frac{2\pi i}{H}v)^2}& u=1,2,\cdots,W-2,v=1,2,\cdots,H-2 \\ mean(f(u,v)) &otherwise \end{cases}
    求得每一點得f(u,v)f(u,v)再用傅里葉逆變換得到f(x,y)f(x,y)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章