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

应用案例

相关推荐
CoovallyAIHub8 分钟前
AAAI 2026 | 华中科大联合清华等提出Anomagic:跨模态提示零样本异常生成+万级AnomVerse数据集(附代码)
深度学习·算法·计算机视觉
npupengsir21 分钟前
nano vllm代码详解
人工智能·算法·vllm
CyanMind28 分钟前
IsaacLab 训练范式探索(一):让机器人拥有“记忆”的 RNN 策略
人工智能·rnn·机器人
翼龙云_cloud37 分钟前
阿里云渠道商:百炼模型选型指南 性能与成本全解析
人工智能·阿里云·云计算
chushiyunen39 分钟前
人工智能-语义校验deepEval笔记
人工智能·笔记
齐齐大魔王41 分钟前
智能语音处理(一)
人工智能·语音识别
Spliceㅤ44 分钟前
项目:基于qwen的点餐系统
开发语言·人工智能·python·机器学习·自然语言处理
李子琪。1 小时前
数字技术认证体系备考实践与职业效能研究
人工智能·经验分享
cd_949217211 小时前
告别硬床误区,梦百合以AI科技重塑正确睡眠观
大数据·人工智能·科技
janeysj1 小时前
安装windows本地OpenClaw并连接飞书
人工智能·飞书