在仿射变换中,原图中所有平行的行在变换后的图像中仍然平行。为了构建仿射矩阵,我们需要原图中的三个点和它们在变换后的图像中的对应位置。函数 cv.getAffineTransform 创建一个2*3的矩阵传递进 cv.warpAffine

import numpy as np
import cv2 as cv
from matplotlib import pyplot as pltimg = cv.imread('cat.jpg')rows,cols,ch = img.shapeprint(ch)pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[10,100],[200,50],[100,250]])M = cv.getAffineTransform(pts1,pts2)dst = cv.warpAffine(img,M,(cols,rows))plt.subplot(121),plt.imshow(img),plt.title('Input')
plt.subplot(122),plt.imshow(dst),plt.title('Output')
plt.show()cv.waitKey(0)cv.destroyAllWindows()

如有不懂的地方请看官网代码注释:https://docs.opencv.org/4.1.0/da/d6e/tutorial_py_geometric_transformations.html

输出结果如下:

如有疑问,请参考官网文档仿射变换部分内容

https://docs.opencv.org/4.1.0/da/d6e/tutorial_py_geometric_transformations.html

opencv中很有趣的仿射变换(Affine Transformation)相关推荐

  1. 仿射变换 Affine transformation

    这个太重要了,我得再研究研究.并争取搞个code出来.这篇先来理论. 本文属转载. 变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型.可采用的变 ...

  2. OpenCV仿射变换Affine Transformations

    OpenCV仿射变换Affine Transformations 仿射变换Affine Transformations 目标 理论 什么是仿射变换? 我们如何获得仿射变换? 代码 这个程序做什么? 解 ...

  3. OpenCV中的仿射变换

    OpenCV中的仿射变换 仿射变换:一个任意的仿射变换都能表示为 乘以一个矩阵 (线性变换) 接着再 加上一个向量 (平移). 通常一个图像有三种变换: 1.旋转 2.平移 3.缩放 通常用2X3的矩 ...

  4. Linux中最危险的是个命令(很有趣呦~)(链接:http://os.51cto.com/art/201408/448756.htm)

    1.[英文] 10 Most Dangerous Commands – You Should Never Execute on Linux by Editor | Published: Novembe ...

  5. 仿射变换(affine transformation)

    仿射变换(affine transformation) 多面体编译(polyhedral compilation)会使用到仿射变换(affine transformation)的知识,这里介绍下仿射变 ...

  6. opencv中mean函数耗时_使用OpenCV进行人脸对齐

    在人脸识别项目中,如果图片中人脸的方向各不一样且相差很大,这样会影响人脸识别的准确率.所以在实际人脸检测项目中,在人脸识别的前一步往往会先进行人脸对齐.人脸对齐可以看作是数据normalization ...

  7. OpenCV中文文档4.0.0学习笔记(更新中……)

    系列文章目录 文章目录 系列文章目录 前言 一.简介 1.OpenCV-Python教程简介 2.OpenCV-Python 3.OpenCV-Python教程 4.OpenCV 需要你!!! 二.G ...

  8. 第四章:OpenCV中的图像处理

    第四章:OpenCV中的图像处理 本章节你将学习图像的改变色彩空间.提取对象.图像的几何变换.图像的阈值.平滑图像等OpenCV图像处理的基本内容. 更多内容请关注我的GitHub库:TonyStar ...

  9. OpenCV 中的 warpAffine

    warpAffine 是图像处理中比较常见的一种变换,可以将图像校正或对齐. 对于线性插值方式,OpenCV 首先将坐标映射保存成两张图,然后调用 remap 函数.第二步是比较耗时的部分,并且 wa ...

最新文章

  1. 《用Python进行自然语言处理》第7章 从文本提取信息
  2. 华为公布车联网进展:年内将覆盖10万网联车
  3. Python数据可视化:幂律分布
  4. confluence安装_Hive安装
  5. 漫谈SAP产品里页面上的Checkbox设计与实现系列之一
  6. 怎么把数据文件上传云服务器,怎么把数据上传导云服务器
  7. React Native App设置amp;Android版发布
  8. PHP下用Memcache 实现消息队列
  9. 关于ics lab8 performance中的rotate
  10. vue 设置每个页面的title
  11. 规范并优化Nginx配置文件
  12. Guri团队的侧信道攻击研究
  13. 思考题4:掷骰子游戏
  14. 手机电脑浏览器抓取京东Cookies教程
  15. Linux Mint 19.2版安装教程
  16. “荣光医院”急救中心 73 问答
  17. 企业级BOM系统与外部系统集成的几种方案
  18. android 记录触屏坐标,android触摸屏坐标手工校准/调整成功
  19. mysql数据库基础知识点总结--看完即入门
  20. 作业二:词云制作 使用软件wordart

热门文章

  1. 开课吧9.9元学python靠谱吗-开课吧的python课程怎么样,值得报名吗?
  2. 自学python好找工作么-学习python后好找工作吗
  3. android 4实例分析,OpenGL Shader实例分析(4)闪光效果
  4. echarts 环形图鼠标悬停
  5. 关于vue el-button 动态获取个数并附不同的颜色
  6. html微数据,HTML5之 Microdata微数据
  7. android自动更新demo,Android程序自动更新功能模块的实现方法【附完整demo源码下载】...
  8. 能识别nvme的pe启动_【腾讯WeTest干货分享】机器学习在启动耗时测试中的应用及模型调优...
  9. php xml namespaces,PHP getDocNamespaces()函数讲解
  10. java在原文件替换_Java:创建临时文件并替换为原始文件