点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自:opencv学堂

透视变换原理

透视变换是将图像从一个视平面投影到另外一个视平面的过程,所以透视变换也被称为投影映射(Projection Mapping)。我们知道在图像的仿射变换中需要变换矩阵是一个2x3的两维平面变换矩阵,而透视变换本质上空间立体三维变换,根据其次坐标方差,要把三维坐标投影到另外一个视平面,就需要一个完全不同的变换矩阵M,所以这个是透视变换跟OpenCV中几何仿射变换最大的不同。

OpenCV中透视变换的又分为两种:

- 密集透视变换

- 稀疏透视变换

我们经常提到的对图像的透视变换都是指密集透视变换,而稀疏透视变换在OpenCV的特征点匹配之后的特征对象区域标识中经常用到。一般情况下密集透视变换warpPerspective函数常与函数getPerspectiveTransform一起使用实现对图像的透视校正。而稀疏透视变换perspectiveTransform经常与findhomography一起使用。

API介绍

warpPerspective - 实现图像透视变换

-src 

参数表示输入图像

-dst

参数表示输出图像

-M

参数表示透视变换矩阵(3x3)

-dsize

参数表示输出图像大小

-flags

参数表示插值方法,一般为线性或者最近邻插值

-borderMode

参数表示对边缘的处理方法,有默认值

一般不用设。

-borderValue

参数表示边缘的填充演示,默认是黑色

getPerspectiveTransform - 获取透视变换矩阵

-src

参数表示输入透视变换前图像四点坐标

-dst

参数表示输入透视变换后图像四点坐标

返回值类型Mat

该函数返回透视变换矩阵M大小为3x3

API调用代码演示

限于篇幅,我们这里只会演示图像透视变换,至于稀疏透视变换相关API演示以后会单独写一篇文章介绍,运行效果如下

左边是原图,右边是透视校正之后的图像。

相关代码如下:

主要根据输入的坐标点获取透视变换矩阵,然后利用透视变换矩阵实现图像透视校正,这个在实际工作中非常有用!

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

OpenCV中的透视变换介绍相关推荐

  1. Opencv中的ROI介绍

    Opencv中的ROI介绍 (2013-03-27 13:36:26) 转载▼   分类: 模式识别         ROI(Region of Interest)是指图像中的一个矩形区域,可能你后续 ...

  2. OpenCV中导向滤波介绍与应用

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导向滤波介绍 导向滤波是使用导向图像作为滤波内容图像,在导向图像上 ...

  3. OpenCV中积分图介绍与应用

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一:图像积分图概念 积分图像是Crow在1984年首次提出,是为了 ...

  4. openCV中waitKey函数介绍

    #include <opencv2/opencv.hpp> #include < iostream > #include <window.h> using name ...

  5. Opencv中的透视变换

    唐宇迪视频学习笔记 def four_point_transform(image, pts):# 获取输入坐标点rect = order_points(pts)(tl, tr, br, bl) = r ...

  6. OpenCV中的「透视变换 / 投影变换 / 单应性」—cv.warpPerspective、cv.findHomography

    文章目录 引言 透视变换(projective transform) 单应性(Homography) opencv代码 仿射变换相关函数 投影变换相关的函数 鸟瞰图代码示例 小结 引言 图像的几何变换 ...

  7. opencv 仿射变换与透视变换详解

    常见的2D图像变换从原理上讲主要包括基于2×3矩阵的仿射变换和基于3×3矩阵透视变换. 仿射变换 原理 基本的图像变换就是二维坐标的变换:从一种二维坐标(x,y)到另一种二维坐标(u,v)的线性变换: ...

  8. opencv中Vec类的小白向介绍

    大纲 前置知识:C++中类(class)的相关知识 前置知识:C++中模板(template)的相关知识 opencv中Vec类的定义及源码 引申:opencv中的宏定义如CV_8UC3 一.C++中 ...

  9. opencv中关于轮廓检测识别Contours及相关函数的介绍

    最近在用vs和opencv库在做图像处理的项目,关于轮廓识别部分,我查阅了一些资料, 现结合自己的理解整理出来,希望能对你有用. 1.contours概述 在利用openCV对图像进行处理时,我们可能 ...

最新文章

  1. SpringBoot 搭建
  2. [maven] settings 文件 本地maven仓库
  3. Hypertable hbase hdfs kfs java与c++的较量
  4. 【转载】15分钟搭建Linux操作系统+Oracle数据库的环境
  5. java jespa_Jespa实际运用的一点心得
  6. 4.深度学习练习:Building your Deep Neural Network: Step by Step(强烈推荐)
  7. Struts2中动态的指定返回的结果集
  8. tomcat apr Dockfile
  9. Java面试问题 021-030
  10. 电视还有前途吗?也许它的前途就是嫁给互联网
  11. 调出win10的关机的休眠(hibernate)选项
  12. flux护眼软件设置
  13. 如何按州跟踪缺席选票
  14. 医院如何发送体检报告短信(附模板内容)
  15. 大数据团队必须设置的五种职位
  16. 安卓沉浸式状态栏_《宫廷秘传》今日安卓计费删档开测
  17. 如何删除SQL Server残留文件
  18. java scan.next_Java使用scanner.nextLine()
  19. Ratingbar的功能和用法
  20. ppp项目跟踪审计为谁服务器,PPP项目跟踪审计研究——以J项目为例

热门文章

  1. 媒体智能应用落地靠5G,视频社交需要想象力
  2. AI一分钟 | 马斯克证实:特斯拉私有化的幕后推手是沙特主权基金;DeepMind的AI可以检测出超过50种眼疾...
  3. 【6月活动】投稿换T恤!只要你愿意分享!这件酷炫的T恤就是你的~!!
  4. 每一个开发人员都应该懂的 UML 规范
  5. PageHelper 在 Spring Boot + MyBatis 中合理且规范的使用方法
  6. Java接地气日常编码技巧
  7. 聊一聊 Java 服务端中的乱象
  8. MySql 之 left join 避坑指南
  9. 面试官问:为什么MySQL的索引不采用Kafka的索引机制
  10. 学习别跟我谈兴趣 No.88