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

应用案例

相关推荐
裤裤兔5 分钟前
CNN和RNN结合提升分类效果
人工智能·rnn·神经网络·分类·cnn·医学图像处理
IT_陈寒6 分钟前
Vue3 性能优化实战:从10秒到1秒的5个关键技巧,让你的应用飞起来!
前端·人工智能·后端
还是大剑师兰特8 分钟前
AI智慧农业20强
人工智能·思维导图·大剑师
永远都不秃头的程序员(互关)10 分钟前
人工智能深度学习实战:手写数字识别指南
人工智能
BJ_Bonree18 分钟前
Bonree ONE 发布直通车| 如何利用核心链路,快速排查定位系统故障?
大数据·运维·人工智能
weixin_4462608518 分钟前
八、微调后模型使用及效果验证-1
前端·人工智能·chrome·微调模型
ccLianLian25 分钟前
CorrCLIP
人工智能·计算机视觉
科士威传动25 分钟前
微型导轨的类型性能差异与场景适配需求
大数据·运维·人工智能·科技·机器人·自动化
Math_teacher_fan25 分钟前
第三篇:三角形问题详解
人工智能·学习·机器学习·几何学
视界先声26 分钟前
人工智能驱动林业转型,工业互联网专题活动助推产业升级
人工智能