影象如函數

2020-09-28 20:00:18

影象如函數

影象分類

完美影象

完美影象(perfect image)是連續圖形,完美影象由一個物理過程所產生。

將這個物理過程用I所表示,他們代表了從平面上的點到一個數位的對映,即

I : R 2 → R I: R^2\rightarrow R I:R2R

Remark: 0 < I ( ⋅ ) < ∞ 0<I(\cdot)<\infty 0<I()<

Remark: 抽象後我們可以將定義域看作超平面上的點,其維度可以超過2 。如此,哦我們可以將它們定義成一個對映:

I : R k → R I: R^k \rightarrow R I:RkR

由所經受的物理過程所決定

Remark: 完美影象僅在無法取樣的時候存在抽象化。

例子:朗伯模型(Lambertian Image)

朗伯模型是一個經典的漫反射模型。朗博模型中光的反射量由入射角的餘弦角所決定。

考慮一個點 x ∈ R 3 x \in R^3 xR3 在朗伯表面上,其對此表面的法向量 n ( x ) n(x) n(x) 。入射角的方向是 l ( x ) l(x) l(x)。 此時反射可以寫作:

R ( x ) = ρ l ( x ) T n ( x ) R(x) = \rho l(x)^Tn(x) R(x)=ρl(x)Tn(x)

其中 ρ \rho ρ是一個常數,用於描述材料屬性。

仍和的反射光與我們的影象平面相交時,都會引起我們的完美影象

I ( u ) = P ( R ( x ) ) I(u) = P(R(x)) I(u)=P(R(x))

其中P投影函數,I(u)是投影的能量

問題:朗伯模型的缺點是什麼?

朗伯模型難以對光滑的表面,比如金屬,進行建模。此時我們需要Phong模型。

在這裡插入圖片描述

數位影像

雖然我們不能直接獲得完美影象,但是我們可以通過電子裝置將其轉換之。如此做,我們可以通過量化取樣完美影象來獲得數位影像。

定義:數位影像是取樣和量化完美影象所獲得。它們展現出從點到非負自然畫素(non-negative natural pixels)到自然數的對映

N 0 2 → N 0 N_0 ^2\rightarrow N_0 N02N0

Remark:數位化是一個投影( R 2 → R R^2 \rightarrow R R2R)

Remark:「取樣」指的是座標值的數位化,「量化」指的是(能量,亮度)強度值的數位化。

Remark:取樣密度由感測器的物理限制所約束

Remark:量化深度由特殊的硬體所決定。8bit的量化廣泛應用於數位化的影象。

Remark: 在特定的數位化情境下(可能指Bayer pattern)完美影象被用於梳理感興趣的訊號。

數位影像建模

對數位影像的數學解釋

  1. 一個從畫素到數位的離散函數
  2. 作為對於原來完美影象的一個近似,我們對一個函數的值域和定義域進行了一個泛化,並且用函數的形式呈現出來。(We generalize domain and range of this function to once again consider a continuous image, albeit an approximate one to our original perfect image,這句話有點離譜)

定義:一個離散影象是一個數位影像的自然數的數位型概述。它獲取數位影像中的整數畫素位置並且將其對映到整數畫素值上。 I : Z 3 → Z I:Z^3\rightarrow Z I:Z3Z

Remark:它可以表示更高維的影象,比如 Z 3 Z^3 Z3(視訊),並且值域維度也可以更高,比如 Z 3 Z^ 3 Z3(三色影象)。

Remark:我們將一個影象的值於的整數的子集稱作 Λ \Lambda Λ

例子:Potts 模型

Potts模型是一個離散影象模型。Potts模型最初在統機物理學中作為雙態化模型(two-state Ising model)的推廣而派生出來的。它假定了一個分段常熟影象訊號。對於大小為 n × n n\times n n×n的影象,我們將其寫作能量泛函(energy functional)。

E ( I ) = β Σ s = 1 n − 1 Σ t = 1 n ( 1 [ I ( s , t ) ≠ ( s + 1 , t ) ] + β Σ s = 1 n − 1 Σ t = 1 n ( 1 [ I ( s , t ) ≠ ( s , t + 1 ) ] ) E(I)=\beta \Sigma^{n-1}_{s=1}\Sigma^{n}_{t=1}(1[I(s, t)\neq(s+1, t)]+\beta \Sigma^{n-1}_{s=1}\Sigma^{n}_{t=1}(1[I(s, t)\neq(s, t+1)]) E(I)=βΣs=1n1Σt=1n(1[I(s,t)=(s+1,t)]+βΣs=1n1Σt=1n(1[I(s,t)=(s,t+1)])

β \beta β是一個建模常數,最初與所研究的材料的物理性質有關,我們忽略了區域上的邊界條件 1 1 1是指示器函數。根據Potts模型的定義,我們發現模型的能量正比於橫縱畫素的變化。當影象 I I I由大的恆定取與,他將具有相應的能量。

定義:一個連續影象可以將離散影象泛化(generalize)為定義域與值域。

Remark:對於離散影象的相似的定義域和值於的泛化可以用於連續模型

Remark:離散與連續混合的表現是非常常見的

Remark:插值。通過數位化過程,最初的完美影象已經被量化到整數座標了。為了研究連續圖形並分析,我們需要不斷地對非整數座標進行插值。

影象操作

在影象的函數解釋下,我們可以用數學的角度去處理影象。

在影象的函數解釋下,影象的三個主要操作:

  1. 空間範圍操作(Spatial Range Operation)如計算影象所有強度值的和
  2. 範圍對映操作(Range map operation)比如計算圖的差別
  3. 定義域操作或幾何變換比如平移和旋轉

空間範圍操作

空間範圍操作講一個區域內所有資訊集合起來,將一個影象的區域定義成 W ⊆ Λ ⊆ Z 2 W\subseteq \Lambda \subseteq Z^2 WΛZ2 。其中W代表一張影象中的視窗(windows)。

定義:一個空間範圍操作 f f f是一個講一張圖對映到一個實數的函數

f : W × ( Z 2 → Z ) → R / W × I → R f: W\times(Z^2\rightarrow Z)\rightarrow R / W \times I \rightarrow R f:W×(Z2Z)R/W×IR

其中 I I I為影象本身。

Remark:我們使用縮寫 I [ W ] I[W] I[W]來表示定義域由 W W W所擷取的新圖,這種新圖也叫子圖(sub-image),或者image patch。

Remark:我們可以講 W W W當作一種函數,當 W = Λ → B Λ W=\Lambda\rightarrow B^{\Lambda} W=ΛBΛ時,這種函數講畫素對映到 B = { 0 , 1 } B=\{0, 1\} B={0,1}。我們可以將mask應用在影象上。在空間範圍操作應用之前,我們也可以基於視窗 W W W在函數 f f f上實現特殊的定義域。

Remark:一個空間範圍操作是線性的當

f W ( α i I i + α j I j ) = α i f W ( I i ) + α j f W ( I j ) f_W(\alpha_i I_i + \alpha_j I_j)=\alpha_i f_W(I_i)+\alpha_jf_W(I_j) fW(αiIi+αjIj)=αifW(Ii)+αjfW(Ij)

α i \alpha_i αi α j \alpha_j αj是任意常標量。

Remark:空間範圍操作可以在影象領域中被組合去組成複雜的操作符。

範圍對映操作

範圍對映擦歐總作用於影象值域,他們將單個操作作用域整個影象域 Λ \Lambda Λ

定義:一個範圍對映操作 g : ( W × I → R ) × I → J g:(W\times I \rightarrow R)\times I \rightarrow J g:(W×IR)×IJ對於影象 J J J來說,是一個函數 f f f作用域影象定義域 Λ \Lambda Λ的每一個空間中,範圍對映操作會產生一個新的影象。

影象 J J J f : W × I → R f: W \times I \rightarrow R f:W×IR

procedure GENERIC_RANGE_MAP_OPERATOR:
foreach pixel s ∈ Λ J \in \Lambda_J ΛJ do

​ let W s W_s Ws be the window into Λ \Lambda Λ at centered at s

J ( s ) = f ( I , W s ) J(s)=f(I, W_s) J(s)=f(I,Ws)

​ end for

end procedure

Remark:範圍對映操作的輸出集是實數集。實際操作上,它常被放寬到實數或者其他的範圍。

Remark:範圍對映操作通常被用於一個被稱作強度轉換(intensity transformations)的畫素視窗。文獻中存在許多可能的強度變換 (very many possibly intensity transformations exist in the literature,不會翻譯)並且包括了操作符比如直方圖均衡化(histogram equalization),線性放大(linear scaling)或者log轉換等。

例子單畫素範圍對映強度轉換。一個強度轉換的例子是對負影象的轉換。每一個新畫素的值是輸入值的負值。

J ( S ) = − I ( S ) J(S)=-I(S) J(S)=I(S)

Remark:一個特殊的範圍對映例子是對映到二進位制畫素而不是實數:

g : ( W × I → B ) × I → B g:(W\times I\rightarrow B)\times I \rightarrow B g:(W×IB)×IB

對於二進位制影象 B B B

例子二進位制函數的範圍對映

考研率一個二進位制閾值操作符 f b f_b fb。在一個確定的範圍對每一個畫素視窗, f b f_b fb選擇畫素值 ( Γ − ≤ I [ W ] ≤ Γ + ) (\Gamma^-\le I[W]\le \Gamma^+) (ΓI[W]Γ+)

f b ( I [ W ] ; Γ − , Γ + ) = { 1 Γ − ≤ I [ W ] ≤ Γ + 0 o t h e r w i s e f_b(I[W];\Gamma^-,\Gamma^+)=\left\{ \begin{aligned} 1\quad & \Gamma^-\leq I[W]\leq\Gamma^+\\ 0\quad & otherwise \end{aligned} \right. fb(I[W];Γ,Γ+)={10ΓI[W]Γ+otherwise

或在更大的視窗中使用空間範圍操作符,比如:

f b ( I , W ; Γ − , Γ + ) = { 1 Γ − ≤ s u m ( I , W ) ≤ Γ + 0 o t h e r w i s e f_b(I,W;\Gamma^-,\Gamma^+)=\left\{ \begin{aligned} 1\quad & \Gamma^-\leq sum(I, W)\leq\Gamma^+\\ 0\quad & otherwise \end{aligned} \right. fb(IW;Γ,Γ+)={10Γsum(I,W)Γ+otherwise

Remark:在一個範圍操作符中,空間範圍操作在一個大視窗 W W W將應用相同的操作在這個圖的每一個區域內。

Remark:一個特別重要的引數在一個空間操作符中的是核(kernel)。一個核 κ \kappa κ是一個與 W W W大小相同的矩陣。核的值都是實數, κ ∈ R ∣ W ∣ \kappa\in\mathbb{R}^{|W|} κRW。在核操作中,核 κ \kappa κ與影象視窗 I [ W ] I[W] I[W]的元素積操作被計算與累加起來。這個操作最容易被向量化的核 κ \kappa κ與影象視窗 I [ W ] I[W] I[W]的點積所表示。向量化一個矩陣代表連線一個矩陣的所在列,並且將其連成一個長列向量。

當核操作被應用於整個影象中的一個範圍對映的時候,我們可以將這個過程稱作離散折積,並用符號 ⊗ \otimes 表示。我們為了輸出影象位置 J ( s , t ) J(s, t) J(s,t)而寫下這個折積。核的大小是 2 m + 1 × 2 m + 1 2m+1\times 2m+1 2m+1×2m+1因此一個視窗可以索引至 s − m . . . s + m s-m ...s+m sm...s+m t − n . . . t + n t-n ... t+n tn...t+n被寫作

J ( s , t ) = κ ⊗ I [ W ] = Σ k = − m m Σ l = − n n κ ( k , l ) I ( s − k , t − l ) = κ ⃗ T I [ W ] ⃗ J(s, t) = \kappa \otimes I[W]=\Sigma^m_{k=-m}\Sigma^n_{l=-n}\kappa(k,l)I(s-k, t-l)=\vec{\kappa}^TI\vec{[W]} J(s,t)=κI[W]=Σk=mmΣl=nnκ(k,l)I(sk,tl)=κ TI[W]

我們將核對映應用於所有位置,適當地考慮影象邊界,即簡單的說 κ ⊗ I \kappa\otimes I κI,它是建立影象的函數。這裡有一個折積的連續模擬,但是我們暫不進行討論。假如維度與核相匹配,這個操作可以清晰地泛化到高維。

例子離散影象求導

在影象的函數解釋下,像這樣的計算式非常正常的。

I ( x , y ) I(x, y) I(x,y)的部分求導是

∂ I ( x , y ) ∂ x = l i m h → 0 I ( x + h , y ) − I ( x , y ) h \frac{\partial I(x,y)}{\partial x} = lim_{h\rightarrow 0}\frac{I(x+h, y)-I(x, y)}{h} xI(x,y)=limh0hI(x+h,y)I(x,y)

考慮一個離散影象模型,我們有一個固定的值 h h h可以讓我們去考慮一個有限(離散)差別的解釋:

d I ( x , y ) d x = I ( x + h , y ) − I ( x , y ) h \frac{dI(x,y)}{dx}=\frac{I(x+h,y)-I(x,y)}{h} dxdI(x,y)=hI(x+h,y)I(x,y)

最後,考慮到離散影象 I I I,我們可以將 h h h設為1來表示一個畫素的差別。我們將有限差別符設為 ∇ x = d I ( x , y ) d x = I ( x + 1 , y ) − I ( x , y ) \nabla_x=\frac{dI(x,y)}{dx}=I(x+1,y)-I(x,y) x=dxdI(x,y)=I(x+1,y)I(x,y)

將其用於核中,則縱向為 κ = [ 1 , − 1 ] T \kappa=[1,-1]^T κ=[1,1]T,橫向為 κ = [ 1 , − 1 ] \kappa=[1,-1] κ=[1,1]

Remark:範圍操作可以是二元,三元,或者同時任意數位

例子影象拉普拉斯與0-crossing

考慮影象 I I I 被核 κ 1 \kappa_1 κ1 κ 2 \kappa_2 κ2所折積處理, κ 1 \kappa_1 κ1 κ 2 \kappa_2 κ2是分別從 σ = 1 \sigma=1 σ=1 σ = 2 \sigma=2 σ=2的高斯函數中取樣出來。將折積出來的影象稱為 G 1 G_1 G1 G 2 G_2 G2。取兩者之差 G 2 − G 1 G_2-G_1 G2G1。可以發現影象的邊緣被凸顯出來。

一個突然的強度改變會在一階導提升到頂峰,或者在二階導達到0-crossing

之前的例子(離散影象求導)表現了一階導,這個例子考慮二階導

∇ 2 = ∂ 2 ∂ x 2 + ∂ 2 ∂ y 2 \nabla^2=\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2} 2=x22+y22

這兩個(二階導和高斯核)效果相近

專業術語翻譯對照(不確定是不是對的)

完美影象: perfect Image

定義域: Domain

值域:range

朗伯模型Lambertian Model

數位影像 digital Image

非負自然畫素 non-negative natural pixels

取樣:Sampling

量化:quantization

感興趣的訊號 signals of interest.

雙態化模型:two-state Ising model

指示器函數:indicator function

泛化generalize

空間範圍操作 Spatial Range Operation

範圍對映操作 Range map operation

文獻中 in the literature