图像如函数
图像分类
完美图像
完美图像(perfect image)是连续图形,完美图像由一个物理过程所产生。
将这个物理过程用I所表示,他们代表了从平面上的点到一个数字的映射,即
I : R 2 → R I: R^2\rightarrow R I:R2→R
Remark: 0 < I ( ⋅ ) < ∞ 0<I(\cdot)<\infty 0<I(⋅)<∞
Remark: 抽象后我们可以将定义域看作超平面上的点,其维度可以超过2 。如此,哦我们可以将它们定义成一个映射:
I : R k → R I: R^k \rightarrow R I:Rk→R
由所经受的物理过程所决定
Remark: 完美图像仅在无法取样的时候存在抽象化。
例子:朗伯模型(Lambertian Image)
朗伯模型是一个经典的漫反射模型。朗博模型中光的反射量由入射角的余弦角所决定。
考虑一个点 x ∈ R 3 x \in R^3 x∈R3 在朗伯表面上,其对此表面的法向量 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 N02→N0
Remark:数字化是一个投影( R 2 → R R^2 \rightarrow R R2→R)
Remark:“取样”指的是坐标值的数字化,“量化”指的是(能量,亮度)强度值的数字化。
Remark:取样密度由传感器的物理限制所约束
Remark:量化深度由特殊的硬件所决定。8bit的量化广泛应用于数字化的图像。
Remark: 在特定的数字化情境下(可能指Bayer pattern)完美图像被用于梳理感兴趣的信号。
数字图像建模
对数字图像的数学解释
- 一个从像素到数字的离散函数
- 作为对于原来完美图像的一个近似,我们对一个函数的值域和定义域进行了一个泛化,并且用函数的形式呈现出来。(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:Z3→Z
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=1n−1Σt=1n(1[I(s,t)=(s+1,t)]+βΣs=1n−1Σt=1n(1[I(s,t)=(s,t+1)])
β \beta β是一个建模常数,最初与所研究的材料的物理性质有关,我们忽略了区域上的边界条件 1 1 1是指示器函数。根据Potts模型的定义,我们发现模型的能量正比于横纵像素的变化。当图像 I I I由大的恒定取与,他将具有相应的能量。
定义:一个连续图像可以将离散图像泛化(generalize)为定义域与值域。
Remark:对于离散图像的相似的定义域和值于的泛化可以用于连续模型
Remark:离散与连续混合的表现是非常常见的
Remark:插值。通过数字化过程,最初的完美图像已经被量化到整数坐标了。为了研究连续图形并分析,我们需要不断地对非整数坐标进行插值。
图像操作
在图像的函数解释下,我们可以用数学的角度去处理图像。
在图像的函数解释下,图像的三个主要操作:
- 空间范围操作(Spatial Range Operation)如计算图像所有强度值的和
- 范围映射操作(Range map operation)比如计算图的差别
- 定义域操作或几何变换比如平移和旋转
空间范围操作
空间范围操作讲一个区域内所有信息集合起来,将一个图像的区域定义成 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×(Z2→Z)→R/W×I→R
其中 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×I→R)×I→J对于图像 J J J来说,是一个函数 f f f作用域图像定义域 Λ \Lambda Λ的每一个空间中,范围映射操作会产生一个新的图像。
图像 J J J f : W × I → R f: W \times I \rightarrow R f:W×I→R
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×I→B)×I→B
对于二进制图像 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(I,W;Γ−,Γ+)={ 10Γ−≤sum(I,W)≤Γ+otherwise
Remark:在一个范围操作符中,空间范围操作在一个大窗口 W W W将应用相同的操作在这个图的每一个区域内。
Remark:一个特别重要的参数在一个空间操作符中的是核(kernel)。一个核 κ \kappa κ是一个与 W W W大小相同的矩阵。核的值都是实数, κ ∈ R ∣ W ∣ \kappa\in\mathbb{R}^{|W|} κ∈R∣W∣。在核操作中,核 κ \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 s−m...s+m与 t − n . . . t + n t-n ... t+n t−n...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(s−k,t−l)=κ 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} ∂x∂I(x,y)=limh→0hI(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 G2−G1。可以发现图像的边缘被凸显出来。
一个突然的强度改变会在一阶导提升到顶峰,或者在二阶导达到0-crossing
之前的例子(离散图像求导)表现了一阶导,这个例子考虑二阶导
∇ 2 = ∂ 2 ∂ x 2 + ∂ 2 ∂ y 2 \nabla^2=\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2} ∇2=∂x2∂2+∂y2∂2
这两个(二阶导和高斯核)效果相近
专业术语翻译对照(不确定是不是对的)
完美图像: 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
来源:oschina
链接:https://my.oschina.net/u/4343506/blog/4655539