基于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个点在转换后的目标图像中的对应坐标

应用案例

相关推荐
IT_陈寒4 分钟前
Python的线程池居然把我坑在了垃圾回收这块
前端·人工智能·后端
刘一说10 分钟前
AI科技热点日报 | 2026年6月1日
人工智能·科技
阿里云大数据AI技术10 分钟前
性能提升20倍:阿里云 Milvus 深度优化磁盘索引,重新定义亿级向量检索
人工智能
包子BI大数据23 分钟前
3.openclaw小龙虾简单版安装教程
人工智能·python·ai
zhangfeng113340 分钟前
超算/曙光DCU集群 昆山站 根目录文件夹逐项释义(HTC调度集群环境、国产DCU算力节点)
人工智能·pytorch·机器学习
格桑阿sir42 分钟前
15-大模型智能体开发工程师:深度学习MCP协议(Model Context Protocol)
人工智能·ai·大模型·agent·sse·mcp·streamable http
程序员佳佳43 分钟前
深度解析:向量引擎如何影响AI内容收录?附3个月实测数据
人工智能·gpt·自动化·ai写作·codex
feng14561 小时前
OpenSREClaw - AI 本体论思维
运维·人工智能
zhangxingchao1 小时前
AI应用开发八:RAG相关技术总结
前端·人工智能·后端
码农小旋风1 小时前
国内使用 Claude 的 5 种路径:网页、订阅、API 和企业方案怎么选
人工智能·chatgpt