当前位置: 首页 > news >正文

opencv-图像仿射变换

仿射变换就是将矩形变为平行四边形,而透视变换可以变成任意不规则四边形。实际上,仿射变换是透视变换的子集,仿射变换是线性变换,而透视变换不仅仅是线性变换。

仿射变换设计图像位置角度的变化,是深度学习预处理中常用的功能。仿射变换就是对图像的平移缩放旋转翻转操作的组合

如下图,对图中点1,2,3与图二中三个点一一映射,仍然形成三角形,但形状已经发生改变,通过这两组三点求出仿射变换矩阵,然后将其应用到图像中所有点就完成了图像的仿射变换

仿射变换基本都是经过平移,旋转,放缩,错切,平移这几个步骤(按顺序执行)等形成了最终的图像 

 

 

import numpy as np
import cv2
img = cv2.imread('1.jpg')
#获取图像宽和高
row, cols = img.shape[:2]
#创建变换矩阵,原图3个点,映射后对应3个点坐标
pts1 = np.float32([[0, 0], [0, 307], [216, 307]])
pts2 = np.float32([[50, 50], [200, 50], [100, 200]])
#利用cv2.getAffineTransform来求得矩阵M
M = cv2.getAffineTransform(pts1, pts2)
#利用函数cv2.warpAffine完成仿射变换并返回图像
dst = cv2.warpAffine(img, M, (cols, rows))#(cols, row)指变换后图像大小
#图像显示
cv2.imshow('1.jpg', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 北京汽车美容元宇宙:数字化浪潮下的车美服务新革命
  • JavaScript 对话框式弹出提示框 PopoverTip 实现详解
  • JavaFX布局-ToolBar
  • 【前端】JavaScript入门及实战111-115
  • 关于C/C++的编译、构建、CMake、x86_amd64等问题(自用)
  • 浅谈Trie树算法
  • 开启休假模式
  • WebSocket 协议与 HTTP 协议、定时轮询技术、长轮询技术
  • Linux 安装 Redis 6.2.14
  • vulhub靶场之wordpress关卡(保姆级教程)
  • 大数据Flink(一百零七):阿里云Flink的应用场景
  • npm ERR! missing script: serve
  • 基于MPC在线优化的有效集法位置控制器simulink建模与仿真
  • 免杀笔记 ---> 函数踩踏 PEB寻址
  • 获取UTC时间计算时间
  • [LeetCode] Wiggle Sort
  • 2017 前端面试准备 - 收藏集 - 掘金
  • ERLANG 网工修炼笔记 ---- UDP
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Javascript基础之Array数组API
  • js ES6 求数组的交集,并集,还有差集
  • js如何打印object对象
  • OSS Web直传 (文件图片)
  • 好的网址,关于.net 4.0 ,vs 2010
  • 如何用vue打造一个移动端音乐播放器
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • mysql面试题分组并合并列
  • 函数计算新功能-----支持C#函数
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #define
  • #VERDI# 关于如何查看FSM状态机的方法
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $.proxy和$.extend
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (2)Java 简介
  • (回溯) LeetCode 78. 子集
  • (七)理解angular中的module和injector,即依赖注入
  • (一)kafka实战——kafka源码编译启动
  • (转)为C# Windows服务添加安装程序
  • 、写入Shellcode到注册表上线
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .Net 8.0 新的变化
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .net core使用ef 6
  • .NET技术成长路线架构图
  • .Net中间语言BeforeFieldInit
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @ComponentScan比较
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • [2669]2-2 Time类的定义
  • [android] 练习PopupWindow实现对话框
  • [Bugku]密码???[writeup]