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

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

3天内不再提示

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

新机器视觉 来源:每刻深思智能科技 2024-03-05 10:19 次阅读

01 01 透视变换简介

透视变换(Perspective Transformation)即将图片投影到一个新的视平面,也称为投影映射。它是二维坐标(x,y)到三维坐标(X,Y,Z),再到另一个二维空间(u,v)的映射。

02 透视变换原理

到具体实现上,对应的的是计算公式见公式(1)-公式(3)。本文不进行详细的透视变换公式推理,关于这些公式推理,读者可参考本文参考资料或OpenCV官方资料等。

746cbcf8-da85-11ee-a297-92fbcf53809c.png

需要着重说明地是,(u,v)是透视变换后图像的坐标,(x,y)是源图像坐标。我们进行实际的透视变换实现是遍历透视变换后图像坐标(u,v),依次求得它对应的源图像坐标(x,y)。此时计算得到的源图像坐标(x,y)大概率是小数,所以需要进行一次插值操作,求得源图像坐标(x,y)的像素值,该像素值即为透视变换后图像坐标(u,v)的像素值。 本文只对透视变换的硬件实现做略微详细地说明。即:已知透视变换参数矩阵后(见下图),如何进行透视变换。

74933ce8-da85-11ee-a297-92fbcf53809c.png

03 透视变换硬件实现方案

74ba1b88-da85-11ee-a297-92fbcf53809c.png

如上图所示为透视变换硬件实现框图。

透视变换参数、源图像、目标图像地址等数据通过APB总线配置进入寄存器

traversal(x,y)将透视变换后图像坐标 (u,v)转换为对应的源图像坐标 (x,y)。

AXI4读取源图像数据,经过双线性插值求得源图像坐标 (x,y)的像素值,并将他作为透视变换后图像坐标 (u,v)的像素值保存下来。

综上所述,硬件实现的重点主要在于硬件实现上述的第2步以及第3步,分别对应如何实现公式(3)以及如何实现插值操作。

3.1 坐标转换

硬件实现透视变换时,需要进行小数的定点转换。此时需要考虑到乘除法位数过高带来的资源消耗以及时序问题。以最高频率400MHz为例,16bit*16bit或16bit/16bit的乘除法能够满足在单个周期内实现,超出后将会导致时序违例。如何设定小数的定点转换,也需要考虑小数的范围。以以下的参数作为例子:目标图像大小为128*128;源图像大小为640*480。

74c48e1a-da85-11ee-a297-92fbcf53809c.png

则,(u,v)设置为带符号数16位整数,0位小数,即s(16,0);

计算得到的(x,y)设置为带符号数11位整数,5位小数,即s(16,5);

m_0,m_1,n_0,n_1设置为带符号数5位整数,11位小数,即s(16,11);

dx,dy,dz设置为带符号数11位整数,5位小数,即s(16,5);

p_0,p_1设置为带符号数1位整数,15位小数,即s(16,15)。

设置好定点小数的格式后再进行公式(3)的计算即可。

3.2 插值

较为常见的图像插值方法有最近邻插值、双线性插值、双三次插值。兼顾插值效果与实现复杂度,可以选择双线性插值,实现原理见下图。

74f17e7a-da85-11ee-a297-92fbcf53809c.png

04 最终结果展示

源图像:

750849ac-da85-11ee-a297-92fbcf53809c.png

透视变换后图像:

7531c250-da85-11ee-a297-92fbcf53809c.png

审核编辑:黄飞

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

    关注

    0

    文章

    3

    浏览量

    1330

原文标题:一种硬件实现透视变换的方法

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

收藏 人收藏

    评论

    相关推荐

    手机硬件知识浅谈

    手机硬件知识浅谈
    发表于 05-15 11:04

    Boost-Buck光伏接口变换器控制策略研究

    变换器工作在高效率的单管模式时,升、降压模态的平滑切换问题。以Boost-Buck变换器为研究对象,设计了一种控制策略实现外特性要求。同时分析了模态过渡问题产生的原因,给出加入双管降频
    发表于 06-03 05:00

    讲解实数FFT的逆变换实现

    第32章 STM32F429的实数FFT的逆变换(支持单精度和双精度)本章主要讲解实数FFT的逆变换实现。通过FFT变换将波形从时域转换到频域,通过IFFT逆
    发表于 08-10 07:31

    浅谈计算机的硬件维护

    软件系统的同时,也应该重视对于计算机硬件的维护。以下是学习啦小编为大家精心准备的:浅谈计算机的硬件维护相关论文。内容仅供参考,欢迎阅读!浅谈计算机的
    发表于 09-08 06:49

    浅谈计算机的硬件维护

    软件系统的同时,也应该重视对于计算机硬件的维护。以下是小编为大家精心准备的:浅谈计算机的硬件维护相关论文。内容仅供参考,欢迎阅读!浅谈计算机的硬件
    发表于 09-08 07:52

    矩阵变换器SPWM调制策略研究

    矩阵变换器 的工作原理、等效交一直一交变换、SPWM(Sine Pulse Width Modulation)控制策略进行了理论分析及仿真研究.SPWM控制策略的最大特点是控制方案简单
    发表于 08-10 14:58 38次下载
    矩阵<b class='flag-5'>变换</b>器SPWM调制<b class='flag-5'>策略</b>研究

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

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

    控制型软开关变换器的实现策略_顾亦磊

    控制型软开关变换器的实现策略,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-05 17:45 1次下载

    基于半桥变换器和倍压器的超级电容均压策略

    基于半桥变换器和倍压器的超级电容均压策略_汪玉凤
    发表于 01-04 17:05 8次下载

    浅谈变频器矢量变换控制的基本原理及应用

    浅谈变频器矢量变换控制的基本原理及应用
    发表于 01-21 11:54 8次下载

    opencv透视变换原理及实例

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

    一种三电平全桥直流变换器新型控制策略研究

    一种三电平全桥直流变换器新型控制策略研究(现代电源技术王建辉课后答案)-一种三电平全桥直流变换器新型控制策略研究                  
    发表于 08-31 18:40 11次下载
    一种三电平全桥直流<b class='flag-5'>变换</b>器新型控制<b class='flag-5'>策略</b>研究

    双向全桥DC_DC变换器新型控制策略研究

    双向全桥DC_DC变换器新型控制策略研究(高频开关电源技术)-双向全桥DC_DC变换器新型控制策略研究                  
    发表于 08-31 19:00 54次下载
    双向全桥DC_DC<b class='flag-5'>变换</b>器新型控制<b class='flag-5'>策略</b>研究

    浅析OpenCV中的透视变换

    透视变换是将图像从一个视平面投影到另外一个视平面的过程,所以透视变换也被称为投影映射(Projection Mapping)。
    的头像 发表于 05-18 16:18 1261次阅读
    浅析OpenCV中的<b class='flag-5'>透视</b><b class='flag-5'>变换</b>

    OpenCV筑基之图像的透视变换

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