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

应用案例

相关推荐
果汁华2 分钟前
LangChain:构建 AI 应用的革命性框架
人工智能·langchain
核数聚14 分钟前
核数聚:数据标注不止“打标签”
人工智能
淘矿人16 分钟前
2026年4月-DeepSeek V4 vs GPT-5.5深度对比测评:weelinking一键切换实测
服务器·数据库·人工智能·python·gpt·学习·php
Westward-sun.16 分钟前
YOLOv1:从“单阶段检测”理解目标检测的起点
人工智能·yolo·目标检测
qq_4112624224 分钟前
四博 AI 智能音箱方案基于四博 ESP32-S3 AI-Speaker 核心方案
人工智能·智能音箱
学术头条26 分钟前
Springer Nature直播预告 | 无人系统集群协同与工程挑战
人工智能·科技·机器学习·ai·agi
@不误正业28 分钟前
HarmonyOS-6.0-AI全栈能力解析-Data-Augmentation-Kit到智能体开发实战
人工智能·华为·harmonyos·开源鸿蒙
HackTorjan34 分钟前
深度解析雪花算法及其高性能优化策略
人工智能·深度学习·算法·性能优化·dreamweaver
无忧智库35 分钟前
碳电融合时代的数字化破局:某能源集团“十五五“VPP与碳交易联动运营系统深度解析(WORD)
大数据·人工智能·能源
果汁华38 分钟前
LlamaIndex:连接私有数据与 LLM 的数据框架
人工智能·知识图谱