数字图像处理---图像的几何变换

图像的几何变换

图像的几何变换包括了图像的形状变换和图像的位置变换

图像的形状变换

图像的形状变换是指图像的放大、缩小与错切

图像缩小

图像的缩小是对原有的数据进行挑选或处理,获得期望缩小尺寸的数据,并尽量保持原有的特征不消失

分为按比例缩小和不按比例缩小两种

最简单的方法是等间隔地选取数据

图像缩小实现

设原图像大小为\(M*N\),缩小为\(K_1M*K_2N(K_1<1,K_2<1)\)

  1. 设原图为\(F(i,j),i=1,2,...,M,j=1,2,...,N\);压缩后地图像为\(G(x,y),x=1,2,...,k_1M,y=1,2,...,k_2N\)
  2. \(G(x,y)=F(c_1*i,c_2*j) ;其中,c_1=1/k_1,c_2=1/k_2\)

图像放大

图像放大时对多出的空位填入适当的值,是信息的估计

最简单的思想是将原图像中的每个像素放大为\(k*k\)的子块

图像放大实现

设原图像大小为\(M*N\),缩小为\(K_1M*K_2N(K_1>1,K_2>1)\)

  1. 设原图为\(F(i,j),i=1,2,...,M,j=1,2,...,N\);压缩后地图像为\(G(x,y),x=1,2,...,k_1M,y=1,2,...,k_2N\)
  2. \(G(x,y)=F(c_1*i,c_2*j) ;其中,c_1=1/k_1,c_2=1/k_2\)

图像错切

图像错切变换实际上是平面景物在投影平面上的非垂直投影效果

图像错切的数学模型

\[\left\{\begin{matrix} x' = x + d_x y \\ y' = y \end{matrix}\right. (x方向的错切 ,dx=tan \theta) \]

\[\left\{\begin{matrix} x' = x \\ y' = y + d_y x \end{matrix}\right. (y方向的错切 ,dy=tan \theta) \]

图像的位置变换

图像的位置变换是指图像的平移、镜像与旋转,即图像的大小和形状不发生变化

主要用于目标识别中的目标配准

图像平移

公式:

\[\left\{\begin{matrix} x' = x + \Delta x \\ y' = y + \Delta y \end{matrix}\right. \]

图像镜像

图像镜像分为水平镜像和垂直镜像,即左右颠倒和上下颠倒

公式:

图像大小为M*N

\[\left\{\begin{matrix} x' = x \\ y' = -y \end{matrix}\right. (水平镜像) \]

\[\left\{\begin{matrix} x' = -x \\ y' = y \end{matrix}\right. (垂直镜像) \]

由于不能为负,因此需要再进行一次平移

\[\left\{\begin{matrix} x' = x \\ y' = N+1-y \end{matrix}\right. (水平镜像) \]

\[\left\{\begin{matrix} x' = M+1-x \\ y' = y \end{matrix}\right. (垂直镜像) \]

图像旋转

公式:

\[\left\{\begin{matrix} x' = x cos \theta - y sin \theta \\ y' = x sin \theta + y cos \theta \end{matrix}\right. \]

由于计算结果值所在范围与原有值不同,因此需要在进行扩大画布、取整、平移等处理

画布扩大

原则:以最小的面积承载全部的画面信息

方法:

根据公式

\[\left\{\begin{matrix} x' = x cos \theta - y sin \theta \\ y' = x sin \theta + y cos \theta \end{matrix}\right. \]

计算\(x'_{min},x'_{max},y'_{min},y'_{max}\)

旋转后可能导致像素之间相邻连接不再连续,因此需要通过增加分辨率的方式填充空洞

插值

最简单的方式就是行插值(列插值)方法

  1. 找出当前行的最小和最大的非背景点坐标,记作:(i,k1)、(i,k2)
  2. 在(k1,k2)范围内进行插值,插值方法为空点的像素值等于前一点的像素值
  3. 重复上述操作直至没有空洞

图像的仿射变换

图像的仿射变换即通过通用的仿射变换公式,表示几何变换

齐次坐标

原坐标为(x,y),定义齐次坐标为(wx,wy,w)

实质上是通过增加坐标量来解决问题

仿射变换通式

通过齐次坐标定义仿射变换通式为

\[\left\{\begin{matrix} x' = ax + by +\Delta x \\ y' = cx + dy +\Delta y \end{matrix}\right. \Rightarrow \begin{bmatrix} x' \\ y' \end{bmatrix} =\begin{bmatrix} a & b & \Delta x \\ c & d & \Delta y \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} \]

几何变换表示

  1. 平移

    \[ \begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} =\begin{bmatrix} 1 & 0 & \Delta x \\ 0 & 1 & \Delta y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} \]

  2. 旋转

    \[ \begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} =\begin{bmatrix} cos \theta & -sin \theta & 0\\ sin \theta & cos \theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} \]

  3. 水平镜像

    \[ \begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} =\begin{bmatrix} -1 & 0 & 0\\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} \]

  4. 垂直镜像

    \[ \begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} =\begin{bmatrix} 1 & 0 & 0\\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} \]

  5. 垂直错切

    \[\begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} =\begin{bmatrix} 1 & d_x & 0\\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} \]

  6. 水平错切

    \[\begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} =\begin{bmatrix} 1 & 0 & 0\\ d_y & -1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} \]

图像的几何校正

由于图像成像系统的问题,导致拍摄的图片存在一定的几何失真

几何失真分为

  1. 系统失真:有规律的、可预测的
  2. 非系统失真:随机的

几何校正的基本方法是先建立几何校正的数学模型,其次利用已知条件确定模型参数,最后根据模型对图像进行几何校正

步骤:

  1. 图像空间坐标的变换
  2. 确定校正空间各像素的灰度值(灰度内插)

途径:

  1. 根据畸变原因,建立数学模型
  2. 参考点校正法,根据足够多的参考点推算全图变形函数

空间坐标变换

实际工作中利用一幅基准图像\(f(x,y)\),来校正失真图像\(g(x',y')\)

根据一些控制点对,建立两幅图像之间的函数关系,通过坐标变换,以实现失真图像的几何校正

两幅图像上的\(f(x,y)=g(x',y')\)时,称其为对应像素(同名像素)

通过表达式

\[\left\{\begin{matrix} x' = h_1(x,y) \\ y' = h_2(x,y) \end{matrix}\right. \]

表示两幅图像之间的函数关系

通常用多项式

\[x' = \sum _{i=0} ^{n} \sum_{j=0} ^{n-i} a_{ij} x^i y^j \]

\[y' = \sum _{i=0} ^{n} \sum_{j=0} ^{n-i} b_{ij} x^i y^j \]

来近似\(h_1(x,y)、h_2(x,y)\)

当多项式系数n=1时,畸变关系为线性变换

\[x'=a_{00} + a_{10} x + a_{01} y \]

\[y'=b_{00} + b_{10} x + b_{01} y \]

六个未知数需要至少三个已知点来建立方程式

当多项式系数n=2时,畸变关系式为

\[x'=a_{00} + a_{10} x + a_{01} y + a_{20} x^2 + a_{11}xy + a_{02} y^2 \]

\[y'=b_{00} + b_{10} x + b_{01} y + b_{20} x^2 + b_{11}xy + b_{02} y^2 \]

12个未知数需要至少6个已知点来建立方程式

当超过已知点数目超过要求时,通过最小二乘法求解

n=2时多项式通式为

\[B_{2*n} = H_{2*6} A_{6*n} (n为待求点数) \]

\[B_{2*n} = \begin{bmatrix} x_1' & x_2' & \cdots & x_n' \\ y_1' & y_2' & \cdots & y_n' \end{bmatrix} \]

\[H_{2*6} = \begin{bmatrix} a_{00} & a_{10} & a_{01} & a_{20} & a_{11} & a_{02} \\ b_{00} & b_{10} & b_{01} & b_{20} & b_{11} & b_{02} \end{bmatrix} \]

\[A_{6*n} = \begin{bmatrix} 1 & 1 & \cdots & 1 \\ x_1 & x_2 & \cdots & x_n \\ y_1 & y_2 & \cdots & y_n \\ x_1^2 & x_2^2 & \cdots & x_n^2 \\ x_1y_1 & x_2y_2 & \cdots & x_ny_n \\ y_1^2 & y_2^2 & \cdots & y_n^2 \end{bmatrix} \]

同名点对要求

  1. 数量多且分散
  2. 优先选择特征点

直接法

利用已知点坐标,根据

\[\left\{\begin{matrix} x' = h_1(x,y) \\ y' = h_2(x,y) \end{matrix}\right. \Rightarrow \left\{\begin{matrix} x = h'_1(x',y') \\ y = h'_2(x',y') \end{matrix}\right. \]

\[x = \sum _{i=0} ^{n} \sum_{j=0} ^{n-i} a'_{ij} x'^i y'^j \]

\[y = \sum _{i=0} ^{n} \sum_{j=0} ^{n-i} b'_{ij} x'^i y'^j \]

解求未知参数;然后从畸变图像出发,根据上述关系依次计算每个像素的校正坐标,同时把像素灰度值赋予对应像素,生成校正图像

由于像素分布的不规则,导致出现像素挤压、疏密不均等现象,因此最后还需要进行灰度内插,生成规则图像

间接法

间接法通过假定生成图像的网格交叉点,从网格交叉点(x,y)出发,借助已知点求取未知参数,根据

\[x' = \sum _{i=0} ^{n} \sum_{j=0} ^{n-i} a_{ij} x^i y^j \]

\[y' = \sum _{i=0} ^{n} \sum_{j=0} ^{n-i} b_{ij} x^i y^j \]

推算网格交叉点(x,y)对应畸变图像坐标(x',y'),由于对应坐标一般不为整数,因此需要通过畸变图像坐标周围点的灰度值内插求解,作为网格交叉点(x,y)的灰度值

间接法相对直接法内插较为简单,因此常采用间接法作为几何校正方法

像素灰度内插

最近邻元法

最近邻元法即根据四邻域中最近的相邻像素灰度决定待定点灰度值

该方法效果较佳,算法简单,但是校正后图像存在明显锯齿,即存在灰度不连续性

双线性内插法

双线性内插法是利用待求点四个邻像素的灰度在两个方向上作线性内插
双线性内插法

该方法相较最近邻元法更复杂,计算量更大,但是没有灰度不连续的缺点,且具有低通滤波性质,图像轮廓较为模糊

三次内插法

三次内插法利用三次多项式S(x)来逼近理论最佳插值函数\(sin(x)/x\)

\[S(x) = \left\{\begin{matrix} 1 - 2|x|^2 + |x|^3 & 0 \leq |x| < 1 \\ 4 - 8|x| + 5|x|^2 -|x|^3 & 1 \leq |x| < 2 \\ 0 & |x| \geq 2 \end{matrix}\right. \]

该算法计算量最大,但是内插效果最好,精度最高

posted @ 2020-12-11 22:51  springfield_psk  阅读(708)  评论(0编辑  收藏  举报