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

应用案例

相关推荐
新智元1 分钟前
OpenClaw 引爆纽约集会,虾教日烧 10 亿 tokens!老黄认证:史上最强软件
人工智能
石臻臻的杂货铺17 分钟前
OpenClaw 永久免费的提取任何网页的终极方案
人工智能
一语071624 分钟前
3分钟搞懂深度学习AI:实操篇:卷积层
人工智能·算法
工边页字24 分钟前
AI 开发必懂:Context Window(上下文窗口)到底是什么?
前端·人工智能·后端
火山引擎开发者社区26 分钟前
AgentKit 云端沙盒赋能 AI 内容创作,让创意触手可及
人工智能
hyunbar77729 分钟前
创建个人知识库(lamaIndex + ChromaDB + 本地开源模型)
人工智能
claude_dev30 分钟前
基于 Win10 从零搭建 OpenClaw:Kimi K2.5 + 飞书机器人 完整实战指南
人工智能
over69730 分钟前
📸《拍照记单词》—— 从零到上线的完整开发指南(超详细版)
前端·人工智能·产品
数字卢语32 分钟前
OpenClaw 多 Agent 实战:腾讯云部署到 Telegram 群聊分身协作
人工智能
JarvanMo33 分钟前
JSON 在 AI 时代正在走向消亡
人工智能