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

应用案例

相关推荐
Codebee12 分钟前
SkillFlow:回归本质的AI能力流程管控
人工智能
巫山老妖29 分钟前
2026 年 AI 趋势深度研究报告
人工智能
CodeLove·逻辑情感实验室41 分钟前
深度解析:当 NLP 试图解构爱情——情感计算(Affective Computing)的伦理边界与技术瓶颈
人工智能·深度学习·自然语言处理·赛朋克
少林码僧1 小时前
2.9 字段分箱技术详解:连续变量离散化,提升模型效果的关键步骤
人工智能·ai·数据分析·大模型
互联网工匠1 小时前
从冯·诺依曼架构看CPU和GPU计算的区别
人工智能·gpu算力
爱笑的眼睛111 小时前
超越可视化:降维算法组件的深度解析与工程实践
java·人工智能·python·ai
GISer_Jing1 小时前
AI Agent 目标设定与异常处理
人工智能·设计模式·aigc
mahtengdbb11 小时前
YOLOv10n-ADown改进实现路面裂缝与坑洼检测_计算机视觉_目标检测_道路维护_智能检测系统
yolo·目标检测·计算机视觉
Fnetlink11 小时前
AI+零信任:关键基础设施安全防护新范式
人工智能·安全
njsgcs2 小时前
SIMA2 论文阅读 Google 任务设定器、智能体、奖励模型
人工智能·笔记