zoukankan      html  css  js  c++  java
  • 图像几何变换之仿射变换

    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);
    

      结果示例:

      

      

  • 相关阅读:
    MySQL 获得当前日期时间 函数
    Jquery 将表单序列化为Json对象
    Eclipse远程调试(远程服务器端监听)
    使用Eclipse进行远程调控
    Java基础教程(3)--回顾HelloWorld
    Java基础教程(2)--Java开发环境
    Java基础教程(1)--概述
    4.9上机
    4.2上机
    第四周作业
  • 原文地址:https://www.cnblogs.com/liekkas0626/p/5238564.html
Copyright © 2011-2022 走看看