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

应用案例

相关推荐
小程故事多_806 小时前
LangChain1.0系列:中间件深度解析,让 AI智能体上下文控制不失控
人工智能·中间件·langchain
中国国际健康产业博览会6 小时前
2026第35届中国国际健康产业博览会探索健康与科技的完美结合!
大数据·人工智能
数字化脑洞实验室6 小时前
选择AI决策解决方案需要注意哪些安全和数据隐私问题?
人工智能·安全
Guheyunyi7 小时前
安全风险监测系统核心技术
运维·网络·人工智能·安全
rit84324997 小时前
MATLAB实现图像PCA降噪
开发语言·计算机视觉·matlab
golang学习记7 小时前
再见了,claude code
人工智能
杀生丸学AI7 小时前
【动态高斯重建】论文集合:从4DGT到OMG4、4DSioMo
人工智能·3d·aigc·三维重建·视觉大模型·动态高斯
CareyWYR7 小时前
每周AI论文速递(251110-251114)
人工智能
mit6.8247 小时前
[AI tradingOS] 市场数据系统 | 多交易所交易接口 | 适配器模式
人工智能·区块链
ar01237 小时前
AR远程协助公司哪家好?国内外优秀AR技术公司解析
人工智能·ar