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

应用案例

相关推荐
悟道心14 分钟前
2.智能体-Openclaw介绍
人工智能
ITmaster073115 分钟前
前端 AI 面试题:高频考点与实战解析
前端·人工智能
Είναι η κοπέλα26 分钟前
CNN 与模板匹配混合识别:ONNX 推理 + 置信度仲裁实战
人工智能·神经网络·cnn
嘟哩DuliDuli26 分钟前
AI 短剧生成为什么要有角色库、场景库和镜头卡
android·人工智能·安全·ai·软件工程
技术深耕者29 分钟前
2026年充电桩怎么选?如何判断充电桩哪个品牌质量好,权威市场声明可供参考
大数据·人工智能
wordbaby29 分钟前
别再硬啃公式了:用“北京的天气怎么样”,零基础拆透 Transformer 注意力机制
人工智能
有脚就行32 分钟前
第36篇-Token计费系统-LLM时代的精细化计量
人工智能
黑马水牛43 分钟前
Carla仿真系列:9_Carla 单目障碍物测距,四种方法原理与实测
经验分享·python·深度学习·计算机视觉·ros·传感器·carla仿真
我是慎独1 小时前
人工智能:现代方法读书笔记(八)
人工智能
不是光头 强1 小时前
Java 后端 AI 技术选型与学习路线
java·人工智能·学习