0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅析OpenCV中的透视变换

QQ475400555 来源:机器视觉课堂 2023-05-18 16:18 次阅读

透视变换原理

透视变换是将图像从一个视平面投影到另外一个视平面的过程,所以透视变换也被称为投影映射(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调用代码演示

相关代码如下:

ae64b58a-e415-11ed-ab56-dac502259ad0.jpg

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






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OpenCV
    +关注

    关注

    29

    文章

    611

    浏览量

    40786
  • API接口
    +关注

    关注

    1

    文章

    79

    浏览量

    10315

原文标题:OpenCV中的透视变换介绍

文章出处:【微信号:机器视觉沙龙,微信公众号:机器视觉沙龙】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    #硬声创作季 7-7 OpenCV透视变换

    人工智能opencv
    Mr_haohao
    发布于 :2022年08月30日 15:54:32

    如何使用PythonOpenCV模块检测颜色

    在这篇文章,我们将看到如何使用 Python OpenCV 模块检测颜色,进入这个领域的第一步就是安装下面提到的模块。pip install opencv-pythonpip
    发表于 02-09 16:31

    OpenCV的BGR格式,在libyuv对应的那个格式?OpenCV的RGB格式呢?

    OpenCV的BGR格式,在libyuv对应的那个格式?OpenCV的RGB格式呢?
    发表于 09-19 06:00

    基于透视变换的车辆位置和方向提取方法

    利用快速标定模型进行了车载成像装置的标定,研究了基于导引标志的车辆位置和方向参数提取,其中改进了一种基于透视变换提取车辆位置方向的方法,即利用图像中车道平行线和灭影点
    发表于 02-08 15:46 31次下载
    基于<b class='flag-5'>透视</b><b class='flag-5'>变换</b>的车辆位置和方向提取方法

    霍夫线变换综合示例_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:霍夫线变换综合示例
    发表于 06-06 15:39 8次下载

    仿射变换综合示例_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:仿射变换综合示例
    发表于 06-06 15:39 5次下载

    OpenCV3编程入门-源码例程全集-仿射变换综合示例

    OpenCV3编程入门-源码例程全集-仿射变换综合示例,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 16:55 0次下载

    霍夫线变换综合示例_OpenCV3编程入门-源码例程

    OpenCV3编程入门-源码例程全集-霍夫线变换综合示例,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 17:02 18次下载

    离散傅里叶变换_OpenCV3编程入门-源码例程

    OpenCV3编程入门-源码例程全集-离散傅里叶变换,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 17:02 7次下载

    opencv透视变换原理及实例

    透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。
    发表于 12-04 15:15 1.9w次阅读
    <b class='flag-5'>opencv</b><b class='flag-5'>透视</b><b class='flag-5'>变换</b>原理及实例

    实现openCV傅里叶变换及逆变换的代码程序免费下载

    opencv的傅里叶变换及逆变换实现。傅里叶变换需要将数据表示为复数形式,通过一个两通道矩阵来记录复数的实部和虚部,然后通过cvDFT来实现变换
    发表于 10-11 14:27 3次下载
    实现<b class='flag-5'>openCV</b>傅里叶<b class='flag-5'>变换</b>及逆<b class='flag-5'>变换</b>的代码程序免费下载

    OpenCV的小波变换函数代码免费下载

    OpenCV里面没有提供小波变换函数确实是一大遗憾,网上找点小波变换的代码吧,大多是针对BMP直接操作的,还没有发现非常适合OpenCV的,没办法,自己动手手写了一个,意在抛砖引玉,欢
    发表于 11-14 15:51 13次下载
    <b class='flag-5'>OpenCV</b>的小波<b class='flag-5'>变换</b>函数代码免费下载

    使用Numpy和OpenCV实现傅里叶和逆傅里叶变换

      文章从实际出发,讲述了什么是傅里叶变换,它的理论基础以及Numpy和OpenCV实现傅里叶和逆傅里叶变换,并最终用高通滤波和低通滤波的示例。
    的头像 发表于 07-05 16:04 1255次阅读

    浅谈透视变换的硬件实现策略

    需要着重说明地是,(u,v)是透视变换后图像的坐标,(x,y)是源图像坐标。我们进行实际的透视变换实现是遍历透视
    的头像 发表于 03-05 10:19 150次阅读
    浅谈<b class='flag-5'>透视</b><b class='flag-5'>变换</b>的硬件实现策略

    OpenCV筑基之图像的透视变换

    透视变换是一种非线性变换,它可以将一个二维坐标系中的点映射到三维坐标系中的点,然后再将其投影到另一个二维坐标系中的点。透视变换可以改变图像中
    的头像 发表于 03-15 09:51 186次阅读
    <b class='flag-5'>OpenCV</b>筑基之图像的<b class='flag-5'>透视</b><b class='flag-5'>变换</b>