图像几何变换之仿射变换

1. 原理

  仿射变换(Affine Transformation 或Affine Map)是一种二维坐标(x, y)到二维坐标(u, v)的线性变换,其数学表达式形式如下:

  

  对应的齐次坐标矩阵表示形式为:

  

  仿射变换保持了二维图形的“平直性”(直线经仿射变换后依然为直线)和“平行性”(直线之间的相对位置关系保持不变,平行线经仿射变换后依然为平行线,且直线上点的位置顺序不会发生变化)。非共线的三对对应点确定一个唯一的仿射变换。

2. 二维图像仿射变换

  图像处理中,可应用仿射变换对二维图像进行平移、缩放、旋转等操作。实例如下:

  

  经仿射变换后,图像关键点依然构成三角形,但三角形形状已经发生变化。

3. 原子变换

  仿射变换通过一系列原子变换复合实现,具体包括:平移(Translation)、缩放(Scale)、旋转(Rotation)、翻转(Flip)和错切(Shear)。

  a. 平移

    

    

  b. 缩放

    

    

  c. 旋转

    

    

  d. 翻转

    

    

  e. 错切

    错切亦称为剪切或错位变换,包含水平错切和垂直错切,常用于产生弹性物体的变形处理。

    

    

    

4. 程序

clc;
clear all;close all;
clc;

image = imread('jyy.png');

% u = 4 * x and v = 2 * y
T = [4 0 0; 0 2 0; 0 0 1];

% create spatial transformation structure.
transformation = maketform('affine', T);

% apply 2D spatial transformation to image.
transformationResult = imtransform(image, transformation);

  结果示例:

  

  

原文地址:https://www.cnblogs.com/liekkas0626/p/5238564.html