OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
F变换理论

目标

本教程介绍模糊变换的基本概念。您将学习

  • 数学背景;
  • 如何将模糊性概念应用于图像处理。

本教程需要一定的数学基础知识。所有相关的论文均已引用,大部分可在https://www.researchgate.net/访问。

引言

近年来,F变换理论在许多方向上得到了深入发展。在图像处理中,它已成功应用于图像压缩和缩减、图像融合、边缘检测和图像重建[219] [69] [281] [217] [216] [287]。F变换是一种将连续/离散函数与其有限的F变换分量向量对应起来的技巧。在图像处理中,图像由两个参数的强度函数表示,后者的F变换由分量矩阵给出。

让我们介绍一个二维灰度图像\(I\)的F变换,该图像被视为一个函数\(I:[0,M]\times [0,N]\to [0,255]\),其中\([0,M]=\{0,1,2,\ldots,M\};[0,N]=\{0,1,2,\ldots,N\}\)。假设图像在属于集合\(P\)的点(像素)处定义,其中\(P=\{(x,y)\mid x=0,1,\ldots, M;y=0,1,\ldots, N\}\)。

令\(A_0, \dots ,A_m\)和\(B_0, \dots ,B_n\)为基本函数,\(A_0, \dots ,A_m : [0,M] \to [0, 1]\)为\([0,M]\)的模糊划分,\(B_0, \dots ,B_n :[0,N]\to [0, 1]\)为\([0,N]\)的模糊划分。假设像素集\(P\)相对于所选择的划分是足够密集的。这意味着对于所有\(k\in{0,\dots, m}(\exists x\in [0,M]) \ A_k(x)>0\),并且对于所有\(l\in{0,\dots, n}(\exists y\in [0,N])\ B_l(y)>0\)。

\(F^0\)

变换

我们说实数的\(m\times n\)矩阵\(F^0_{mn}[I] = (F^0_{kl})\)称为\(I\)关于\(\{A_0, \dots,A_m\}\)和\(\{B_0, \dots,B_n\}\)的(离散)F变换,如果对于所有\(k=0,\dots,m,\ l=0,\dots,n\)

\[ F^0_{kl}=\frac{\sum_{y=0}^{N}\sum_{x=0}^{M} I(x,y)A_k(x)B_l(y)}{\sum_{y=0}^{N}\sum_{x=0}^{M} A_k(x)B_l(y)}. \]

系数\(F^0_{kl}\)称为\(F^0\)变换的分量

\(F^1\)

变换

\(F^1\)变换已在[218]中提出。我们说矩阵\(F^1_{mn}[I] = (F^1_{kl}), k=0,\ldots, m, l=0,\ldots, n\)是\(I\)关于\(\{A_k\times B_l\mid k=0,\ldots, m, l=0,\ldots, n\}\)的\(F^1\)变换,\(F^1_{kl}\)是对应的\(F^1\)变换分量。

\(I\)的\(F^1\)变换分量是以下形式的线性多项式:

\[ F^1_{kl}(x,y)= c^{00}_{kl} + c^{10}_{kl}(x-x_k) + c^{01}_{kl}(y-y_l), \]

其中系数由下式给出:

\[ c_{kl}^{00} =\frac{\sum_{y=0}^{N}\sum_{x=0}^{M} I(x,y)A_k(x)B_l(y)}{\sum_{y=0}^{N}\sum_{x=0}^{M} A_k(x)B_l(y)}, \\ c_{kl}^{10} =\frac{\sum_{y=0}^{N}\sum_{x=0}^{M} I(x,y)(x - x_k)A_k(x)B_l(y)}{\sum_{y=0}^{N}\sum_{x=0}^{M} (x - x_k)^2A_k(x)B_l(y)}, \\ c_{kl}^{01} =\frac{\sum_{y=0}^{N}\sum_{x=0}^{M} I(x,y)(y - y_l)A_k(x)B_l(y)}{\sum_{y=0}^{N}\sum_{x=0}^{M} (y - y_l)^2A_k(x)B_l(y)}. \]

图像处理应用

F变换技术包含两个步骤:正向和反向。正向步骤在上一节中进行了描述,反向步骤如下:

\[ O(x,y)=\sum_{k=0}^{m}\sum_{l=0}^{n} F^d_{kl}A_k(x)B_l(y), \]

其中\(O\)是输出(重建)图像,\(d\)是F变换的阶数。实际上,该算法计算输入图像\(I\)的F变换分量,然后将这些分量扩展到\(I\)的大小。详情请参见[216]。图像处理应用可以从两个不同的角度来看待。

从像素角度来看

像素逐个处理,为每个像素找到合适的基函数。每个方向上将恰好有四个,两个。我们需要一些辅助内存结构来收集它们的值。这些值将用于相关模糊分量的分子中。这种方法的实现使用关键字FL,表示快速处理(由于进行了更多优化)和线性基函数

从像素角度来看,标注了与处理像素相关的基函数。

从模糊分量角度来看

通过这种方式,图像被分成规则的区域。每个区域使用核窗口单独处理。这种方法易于理解,基于矩阵的处理具有直接的并行化优势。

从模糊分量角度来看,标注了与处理区域相关的基函数。

这种方法使用核\(g\)。让我们以半径\(h = 2\)的线性情况为例。

\[ A = (0, 0.5, 1, 0.5, 0) \\ B^T = (0, 0.5, 1, 0.5, 0) \\ g = AB^T=\left( \begin{array}{ccccc} 0 & 0 & 0 & 0 & 0 \\ 0 & 0.25 & 0.5 & 0.25 & 0 \\ 0 & 0.5 & 1 & 0.5 & 0 \\ 0 & 0.25 & 0.5 & 0.25 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ \end{array} \right) \]