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

应用案例

相关推荐
WoY202020 小时前
opencv-python在ubuntu系统中缺少依赖
python·opencv·ubuntu
棒棒的皮皮1 天前
【深度学习】YOLO核心原理介绍
人工智能·深度学习·yolo·计算机视觉
2501_941804321 天前
从单机消息队列到分布式高可用消息中间件体系落地的互联网系统工程实践随笔与多语言语法思考
人工智能·memcached
mantch1 天前
个人 LLM 接口服务项目:一个简洁的 AI 入口
人工智能·python·llm
档案宝档案管理1 天前
档案宝自动化档案管理,从采集、整理到归档、利用,一步到位
大数据·数据库·人工智能·档案·档案管理
wenzhangli71 天前
Ooder A2UI 框架中的矢量图形全面指南
人工智能
躺柒1 天前
读共生:4.0时代的人机关系07工作者
人工智能·ai·自动化·人机交互·人机对话·人机关系
码丽莲梦露1 天前
ICLR2025年与运筹优化相关文章
人工智能·运筹优化
ai_top_trends1 天前
2026 年度工作计划 PPT 模板与 AI 生成方法详解
人工智能·python·powerpoint
小真zzz1 天前
2025年度AIPPT行业年度总结报告
人工智能·ai·powerpoint·ppt·aippt