opencv-图像仿射变换

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

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

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

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

python 复制代码
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()

相关推荐
天远Date Lab2 分钟前
零信任架构实战:基于天远全能消金报告(标准版)构建自动化骑手资信评估网关
运维·人工智能·架构·自动化
zhikouai8 分钟前
20项发布串成一条线:从问答案的地方,变成干活的地方
人工智能
阿华田51213 分钟前
Agent Skill 原理解析与使用:从 Prompt 到可复用的 Agent 能力
人工智能·agent·skill
蜗牛互联网18 分钟前
WSL Containers GA:本地AI容器的生命周期、网络与治理验收
java·网络·人工智能·后端
u13013020 分钟前
GitHub 热榜项目:月榜(2026-09-30)
人工智能·github
BSD_CGQ23 分钟前
从工业称重到机器人触觉:柔性压力传感器的跨场景工程适配路径
人工智能·机器人·压力传感器·柔性薄膜压力传感器
AI搅拌机38 分钟前
Minimax H3导演台焕新:支持分镜复制与切换,UI全面统一升级,全能工作流玩转H3
人工智能
IT古董43 分钟前
AI 资讯日报 | 2026年9月27日:模型价格战升级 · Agent 安全风险升温 · AI 资本与监管进入新阶段
人工智能
龙亘川44 分钟前
铭记英烈守初心,数字强基促服务:亘川智城退役军人服务系统的实践与价值
java·数据库·人工智能