基于OpenCV的透视变换

基础概念

透视变换(Perspective Transformation)是仿射变换的一种非线性扩展,是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。

原理:将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下,所以也称为投影映射(Projective Mapping)。

相对仿射变换来说,改变了直线之间的平行关系

透视变换的特点和方法

透视变换相比仿射变换更加灵活,变换后会产生一个新的四边形,但不一定是平行四边形,需要非共线的四个点才能唯一确定

变换后原图中的直线变换后依然是直线

四边形包括了所有的平行四边形,所以透视变换包括了所有的仿射变换

openCV中实现透视变换方法:

首先根据变换前后的四个点用cv.getPerspectiveTransform()生成3×3的变换矩阵

再用cv2.warpPerspective()进行透视变换

函数cv2.warpPerspective()

格式:cv2.warpPerspective(src, M, dsize, dst\[, flags\[, borderMode\[, borderValue]]])

src: 输入图像

M:大小为3×3的转换矩阵

其他参数含义与cv2.warpAffine()函数中的一致

函数cv2.getPerspectiveTransform()

格式:M=cv2.getPerspectiveTransform(src,dst)

src:原图像中4个点的坐标

dst:原图像中4个点在转换后的目标图像中的对应坐标

应用案例

相关推荐
狄龙几秒前
EGO 式数据工作流:仿真采集 → 公开数据集处理 → 重定向示范(六)
人工智能
colorlog4 分钟前
在 DSH 里接入企业微信:MCP 与 CLI+Skill 两条路怎么选、怎么配
人工智能
狂潮lister9 分钟前
狂潮·元理论 | 五个测试验证:大模型不需要高质量数据,只需要异源结构
人工智能
石狮松松10 分钟前
第 03 章 三大流派:符号主义 / 连接主义 / 行为主义
人工智能
mingbaiceping11 分钟前
2026年国际化复旦-华盛顿大学EMBA:申请指南
人工智能
对空六课15 分钟前
RFM分层边界变化的回溯计算
大数据·服务器·前端·数据库·人工智能·算法·数据分析
用户19172912708315 分钟前
企业本地推理算力怎么选?消费级卡与数据中心卡的 6 项参数实测对比
人工智能
IT_陈寒20 分钟前
Vite打包的诡异行为,让我差点提交了个错误版本
前端·人工智能·后端
用户3600555790032 分钟前
【FHE 同态加密】我们如何实现同态加密推理(十四):为什么 `RESULT=PASS` 不是判据(纯 C11 · 零依赖)
人工智能
Starry-sky(jing)34 分钟前
Hermes Agent 部署后怎么升级?v0.21.7 Linux 源代码版实测
linux·人工智能·ai agent·版本升级·hermes agent