何为仿射变换(Affine Transformation)
http://www.cnblogs.com/ghj1976/p/5199086.html
变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型。可采用的变换模型有如下几种:刚性变换、仿射变换、透视变换和非线形变换等,如下图:
参考: http://wenku.baidu.com/view/826a796027d3240c8447ef20.html
其中第三个的仿射变换就是我们这节要讨论的。
仿射变换(Affine Transformation)
Affine Transformation是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直性”(译注:straightness,即变换后直线还是直线不会打弯,圆弧还是圆弧)和“平行性”(译注:parallelness,其实是指保二维图形间的相对位置关系不变,平行线还是平行线,相交直线的交角不变。)。
c和d的区别可以看下图:
仿射变换可以通过一系列的原子变换的复合来实现,包括:平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)。
仿射变换可以用下面公式表示:
参考:http://wenku.baidu.com/view/826a796027d3240c8447ef20.html
这个矩阵乘法的计算如下:
具体到二维的仿射变换的计算如下:
几种典型的仿射变换如下:
平移变换 Translation
将每一点移动到(x+tx, y+ty),变换矩阵为:
平移变换是一种“刚体变换”,rigid-body transformation,就是不会产生形变的理想物体。
效果:
缩放变换(Scale)
将每一点的横坐标放大(缩小)至sx倍,纵坐标放大(缩小)至sy倍,变换矩阵为:
变换效果如下:
剪切变换(Shear)
变换矩阵为:
相当于一个横向剪切与一个纵向剪切的复合
效果:
旋转变换(Rotation)
目标图形围绕原点顺时针旋转theta弧度,变换矩阵为:
效果:
组合
旋转变换,目标图形以(x, y)为轴心顺时针旋转theta弧度,变换矩阵为:
相当于两次平移变换与一次原点旋转变换的复合:
先移动到中心节点,然后旋转,然后再移动回去。
这个转换矩阵也可以下面这样描述。
一些常用转换矩阵如下:
何为仿射变换(Affine Transformation)的更多相关文章
- 仿射变换(Affine Transformation)
转自:https://www.cnblogs.com/bnuvincent/p/6691189.html http://www.cnblogs.com/ghj1976/p/5199086.html 变 ...
- affine transformation matrix 仿射变换矩阵 与 OpenGL
变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型.可采用的变换模型有如下几种:刚性变换.仿射变换.透视变换和非线形变换等,如下图: 参考: ht ...
- QANet
Reading Comprehension(RC) 阅读理解对于机器来说, 是一项非常艰巨的任务.google提出QANet, 目前(2018 0505)一直是SQuAD的No. 1. 今天简单地与大 ...
- 【Computer Vision】图像单应性变换/投影/仿射/透视
一.基础概念 1. projective transformation = homography = collineation. 2. 齐次坐标:使用N+1维坐标来表示N维坐标,例如在2D笛卡尔坐标 ...
- Capsule Network
Capsule Network最大的特色在于vector in vector out & 动态路由算法. vector in vector out 所谓vector in vector out ...
- 写给程序员的机器学习入门 (十) - 对象识别 Faster-RCNN - 识别人脸位置与是否戴口罩
每次看到大数据人脸识别抓逃犯的新闻我都会感叹技术发展的太快了,国家治安水平也越来越好了
- 通过Matrix进行二维图形仿射变换
Affine Transformation是一种二维坐标到二维坐标之间的线性变换,保持二维图形的"平直性"和"平行性".仿射变换可以通过一系列的原子变换的复合来 ...
- 【OpenCV新手教程之十八】OpenCV仿射变换 & SURF特征点描写叙述合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/33320997 作者:毛星云(浅墨) ...
- opencv 之 transformation
getAffineTransform() : calculates an affine transform from three pairs of the corresponding points. ...
随机推荐
- 【STL】vector的insert方法详解
#include<vector> #include<iostream> using namespace std; int main() { vector<int> ...
- Unity3D 记第一次面试
事情是发生在2014-03-05 周三下午 在群里面看到上海艺游急聘Unity3D开发工程师,就整理了下简历投了去!直到接到电话通知我去面试才知道 我之前是有投了简历!太忙了 以至于真的忘了,不过那个 ...
- 访问php文件显示源码
前天新装了个LAMP的环境,兴冲冲的clone下来代码,结果一访问乐子就大了,直接显现源码 面对这个问题,冥思苦想,四处找资料啊 让我改这改那的,最后终于找到症结 Ubuntu 16.04 系统 LA ...
- Postfix邮件
一() 邮件相关协议 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议, 工作在TCP的25端口.它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的 ...
- ibatis sqlmap配置问题 “Check the IBatisNet.DataAccess.DaoSessionHandlers.SqlMapDaoSessionHandler.”
- The error occurred while configure DaoSessionHandler.- The error occurred in <property name=&qu ...
- SVN cleanup 报错,清除svn的工作队列
SVN 提交报错, Team->cleanup还是报错: Can't install '*' from pristine store, because no checksum is record ...
- HDU 6447 - YJJ's Salesman - [树状数组优化DP][2018CCPC网络选拔赛第10题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6447 Problem DescriptionYJJ is a salesman who has tra ...
- hihocoder 1320 - 压缩字符串 - [hiho一下160周]
这道题目可以说是一道非常好非常一颗赛艇的DP题了. 需要注意的是,其中情形3),字符串必然能完全转化为 N(str)形式,如果有N(str1)M(str2)等等另外样式,应该首先使用拼接形式对其进行划 ...
- The History of Operating Systems
COMPPUTER SCIENCE AN OVERVIEW 11th Edition job 作业 batch processing 批处理 queue 队列 job queue 作业队列 first ...
- bokeyuan_python文章爬去入mongodb读取--LOWBIPROGRAMMER
# -*- coding: utf-8 -*- import requests,os from lxml import etree from pymongo import * class Boke(o ...