基于OpenCV的透视变化

基本概念

透视变换(Perspective Transformation)是仿射变换的一种非线性扩展,是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。

原理:将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下,所以也称为投影映射(Projective Mapping)。

相对仿射变换来说,改变了直线之间的平行关系

透视变换的特点

透视变换相比仿射变换更加灵活,变换后会产生一个新的四边形,但不一定是平行四边形,需要非共线的四个点才能唯一确定

变换后原图中的直线变换后依然是直线

四边形包括了所有的平行四边形,所以透视变换包括了所有的仿射变换

openCV中实现透视变换方法:

首先根据变换前后的四个点用cv.getPerspectiveTransform()生成3×3的变换矩阵

再用cv2.warpPerspective()进行透视变换

OpenCV实现透视变换的函数

函数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 分钟前
AI助手语音交互:从技术到体验
人工智能·ai·语音识别·前端开发·tts·ai语音
EasyGBS2 分钟前
国标GB28181视频平台EasyGBS新增HLS按需切片:告别资源空转,让安防视频效率拉满!
网络·人工智能·音视频
keira6743 分钟前
你认为什么是好的提示词?可以优化AI输出的信息
人工智能
天一生水water5 分钟前
THUML 团队开源的时间序列深度学习工具箱
人工智能·深度学习·开源
lulu12165440786 分钟前
Claude Code Routines功能深度解析:24小时云端自动化开发指南
java·人工智能·python·ai编程
weixin_668898647 分钟前
注意力机制与Transformer
人工智能·深度学习·transformer
听你说328 分钟前
智慧照明赋能城市升级|中节能晶和科技EMC模式破解路灯节能改造长效难题
大数据·人工智能·科技
墨心@9 分钟前
Byte-Pair Encoding (BPE) Tokenizer
人工智能·自然语言处理·nlp·datawhale·cs336·组队学习
我叫张土豆11 分钟前
让 AI 学会用工具:基于 LangChain4j 的 Skills Agent 全栈落地实战
人工智能·spring boot
财迅通Ai19 分钟前
天立国际控股:AI赋能再造新增长 中期净利大增21%
大数据·人工智能·天立国际控股