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

应用案例

相关推荐
JoannaJuanCV7 分钟前
自动驾驶—CARLA仿真(13)dynamic_weather demo
人工智能·机器学习·自动驾驶·carla
拉姆哥的小屋8 分钟前
从400维向量到160000维矩阵:基于深度学习的火焰参数预测系统全解析
开发语言·人工智能·python·深度学习·线性代数·算法·矩阵
北京耐用通信8 分钟前
工程师实战:如何以最小成本,耐达讯自动化无缝连接Profinet转DeviceNet网关
人工智能·物联网·网络协议·自动化·信息与通信
_codemonster8 分钟前
自然语言处理容易混淆知识点(三)大模型中的参数
人工智能·自然语言处理
Elwin Wong9 分钟前
本地运行LangChain Agent用于开发调试
人工智能·langchain·大模型·llm·agent·codingagent
IALab-检测行业AI报告生成13 分钟前
AI驱动万页报告审核革新:IACheck技术架构与实践价值解析
人工智能·架构
小马过河R13 分钟前
Codebuddy使用CloudBase MCP辅助AI编码基于Spec工作流开发的坦克大战小游戏
人工智能·团队开发·ai编程·codebuddy
多则惑少则明13 分钟前
AI测试、大模型测试(九)spring集成大模型(AI4J)
人工智能·ai测试·大模型测试
benxin123414 分钟前
智能压力测试代理系统:基于AI的自动化压测解决方案
人工智能·自动化·压力测试
老蒋新思维14 分钟前
创客匠人:小团队的知识变现革命 —— 超级个体 + 多智能体如何重构组织价值
服务器·网络·人工智能·重构·创始人ip·创客匠人·知识变现