基于SIFT的图像拼接系统

2023-05-16

第一部分  设计概述

    1. 设计目的

图像拼接技术是计算机视觉与图像处理领域的一个研究重点,广泛应用于各个领域。它能够很好地实现图像的延伸和连续,保留多组图像的共有信息,去除杂冗,提高信息存储量,能够更加客观形象和有效地展现真实世界[1]。图像拼接技术通常在计算机软件上完成,这就意味着程序的编译和运行需要耗费大量时间。而当前集成电路发展迅猛,对数据的处理能力提高迅速,能更好的完成图像拼接工作。

    1. 应用领域

图像拼接技术广泛应用于虚拟现实[2]、军用全景作战平台、遥感图像处理[3]、安防监控[4]、X 射线医疗影像[5]、全景路况[6]和汽车泊车辅助系统[7]等。由此可见,全景拼接技术应用广、市场大

现如今,各种摄影摄像产品已然成为日常生活中的必需品,传统的拍摄图片分辨率低且视野小,图像缺乏代入感,因此人们更加青睐超宽视角的全景图[8]。可见图像拼接技术具有广阔的工程应用前景,因此对于该技术的研究具有重要意义。

    1. 主要技术特点

图像拼接技术主要由SIFT算法找到匹配点,RANSAC算法进行筛选和拼接。SIFT算法包含空间极值点检测、关键点定位、关键点主方向确定、关键点描述子生成和SIFT特征匹配五部分,其中极值点检测需要构建高斯金字塔,本设计构建了一组四层的简易金字塔。RASAC算法从所有匹配点中随机选取4组匹配点,求解单应性矩阵,由单应性矩阵计算所有匹配点距此的欧式距离;迭代多次,选出内点个数最多的解,此为单应性矩阵的最优解,用这个解过滤匹配点,减少误匹配。

最后将单应性矩阵系数和筛选后的匹配点通过以太网传至计算机,在MATLAB的GUI界面显示匹配连线及拼接图。

    1. 关键性能指标

硬件加速关键在于速度的提升,性能指标主要有资源占比、吞吐量、匹配点数量、匹配时间、误匹配率等。

    1. 主要创新点

(1)通过硬件实现拼接系统,提高运行速度。

(2)简化设计,将描述子的梯度方向由64个减少到32个,将特征点领域的划分由正方形变为八边形,省略旋转过程。

(3)图像的选定由GUI界面完成,实现人机交互。

第二部分  系统组成及功能说明

    1. 整体介绍

设计在pl端分为以太网传输模块、SIFT算法和RASAC算法三大部分,pc端为GUI界面设计部分。其中,SIFT算法又分为空间极值点检测、关键点定位、关键点主方向确定、关键点描述子生成和SIFT特征匹配五个部分。

Figure 1 系统框图

    1. 各模块介绍

1. ZYNQ7021

AC7021B(核心板型号,下同)核心板, ZYNQ 芯片是基于 XILINX 公司的 ZYNQ7000 系列的 XC7Z020-2CLG484I。 ZYNQ 芯片的 PS 系统集成了两个 ARM Cortex™-A9 处理器,AMBA®互连,内部存储器,外部存储器接口和外设。 ZYNQ 芯片的 FPGA 内部含有丰富的可编程逻辑单元, DSP 和内部 RAM。

Figure 2 芯片正面图

2. 以太网传输

Figure 3 千兆以太网

以太网芯片采用 Micrel 公司的 KSZ9031RNX 以太网 PHY 芯片为用户提供网络通信服务。项目使用的PL 端以太网PHY芯片是连接到BANK33和BANK34 的IO上。KSZ9031RNX芯片支持10/100/1000Mbps 网络传输速率,通过 RGMII 接口跟 Zynq7000 系统的 MAC 层进行数据通信;支持MDI/MDX 自适应,各种速度自适应, Master/Slave 自适应,支持 MDIO

总线进行 PHY 的寄存器管理。

3. SIFT算法

SIFT 算法是一种基于图像局部不变性特征的提取、描述以及匹配方法,其特征具有平移、旋转和尺度的不变性。SIFT算法在众多匹配算法中,综合性能上具有很好的表现。SIFT 算法首先根据目标图像建立尺度空间,并通过尺度空间搜寻极值点作为 SIFT 特征点。在特征点检测完毕之后,利用特征点对应尺度的高斯图像生成邻域梯度直方图,用以描述该特征点局部特性。最终,将得到的描述子与其他图像的描述子进行欧式距离匹配,生成描述子匹配对,得到几何映射关系。

Figure 4算法流程

a.尺度空间生成

对于图像而言,不同尺度得到的特征不同,而不同尺度的特征都有可能包含了图像的重要信息。利用计算机对图像进行多尺度处理的实质即是高斯滤波。已经证明[9],高斯滤波是唯一能得到尺度变换结果的方法,其标准差即为尺度空间的参数。即图像𝐼(𝑥, 𝑦)与多尺度高斯核𝐺(𝑥, 𝑦, 𝜎)的卷积结果𝐿(𝑥, 𝑦, 𝜎)即为图像𝐼(𝑥, 𝑦)的尺度空间。

构建高斯尺度空间的步骤为:1、模糊图像,分别使用标准差为𝜎,𝑘𝜎、𝑘2𝜎、𝑘3𝜎至𝑘𝑛𝜎的高斯滤波核与图像卷积。2、下采样,将原图像隔行、列采取像素点,再分别使用标准差为2 𝜎、2𝑘𝜎、2𝑘2𝜎、2𝑘3𝜎至2𝑘𝑛𝜎的高斯滤波核与图像卷积。3、以此类推,获取多组多层图像数据。

Figure 5高斯金字塔

b. 特征点检测

SIFT 特征点检测的基本思路是:在图像中的某个特定的区域内,通过检测该区域多尺度图像局部的极值,并将检测到的极值点经过筛选后作为特征点。

为了减少计算量,SIFT 算法采用了高斯差分进行特征检测,DOG 是高斯-拉普拉斯运算的近似,与LOG相比,DOG 省略了梯度计算,代之以差分运算[6]。DOG算法的实现是将高斯金字塔同组内邻近两幅图相减,过滤出高频信号。DOG尺度空间中的每层 DOG 都包含了尺度σ信息,因此在 DOG 中的特征检结果也与对应尺度相关。

Figure 6 DOG金字塔

图像的特征点需要DOG结果中的极值点。算法将每个像素点与其相邻像素点进行比较,比较方式如图四所示。参与比较的点分布在三层,共有 26个。同一平面内有 8 个点,除此之外还包括两个相邻尺度的对应点。因此每个极值点都是 3 个差分结果的极值点,包含 4 个不同尺度。

Figure 7极值点搜索

 c.  特征点方向生成

经过以上步骤之后,就得到了具有尺度不变性、稳定的特征点坐标,之后再将其处理为对旋转不敏感的特征点。在实际计算中,极值点的梯度计算可以分为两步:

 1). 在尺度空间中搜索,选取尺度与特征点尺度最接近的图像。

 2). 计算该层图像中,特征点的以R为半径的圆形邻域内每个像素点的梯度模和梯度角(R为该层尺度的 4.5 倍)。

得到邻域内的梯度模和梯度角之后,SIFT 算法将梯度值按梯度角的大小分为8个方向组,每个方向组跨度为45°。统计每个方向组的模值之和,得到方向组模值分布直方图,将得到的模值分布直方图进行高斯加权运算,值最大的方向组即为特征点方向。

d. 特征点描述符生成

在得到特征点方向之后,SIFT 对每一个特征点生成特征向量,具体步骤:

1). 在特征点周围选直径为3×𝜎×16大小的邻域,然后用上一步生成的主方向将邻域进行整体旋。旋转可以通过极坐标变换实现,若某点坐标为(𝑥, 𝑦),旋转后坐标为(𝑥’, 𝑦’)。

x’ = y cosα-xsinα

y’ = xsinα+ycosα

2). 在得到梯度模和梯度角的结果之后,进行高斯加权运算,高斯核标准差大小为0.5𝜎,高斯核半径与邻域半径相同。

3). 将邻域以特征点为中心,分为 16 个直径为3𝜎大小的小区域,统计每个小区域内的梯度模和梯度角并按梯度角分组。将每个方向组大小45°,对应将梯度角的0° − 360°等分为8个方向组。

这样SIFT 算法就得到一个128维向量的描述符。

e. 描述符匹配

描述符匹配是对两幅输入图像的特征点描述符进行匹配。使用穷举法对两幅图的描述符一一匹配。计算出欧式距离,记录最近距离和次近邻距离,若次近邻距离大于最近距离的2倍,则两者匹配成功。

4. RANSAC算法

RANSAC是在一组含有“外点”的数据中,不断迭代,最终正确估计出最优参数模型的算法。它在样本中随机选取四个点,由此求解单应性矩阵;多次迭代求解多个矩阵,从中选择最优解。计算欧氏距离筛选匹配点,再由矩阵旋转图像,进行图像融合。

Figure 8单应性矩阵

5.GUI界面

图形用户界面是指采用图形方式显示的计算机操作用户界面,是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。

第三部分  完成情况及性能参数

本文先采用MATLAB进行仿真,再移植到FPGA上进行硬件加速,MATLAB中显示匹配点连线与拼接后的图像。

1. 尺度空间生成

由于时间资源有限,本文只生成一组四层的高斯金字塔,相减后形成一组三层的DOG金字塔。根据文献显示,使用标准差为1.6的高斯核最合适。所以本文选取R为7的高斯核。拆分成一维,分别对行、列进行滤波。

高斯核: [ 6,15,27,32,27,15,6]

              [3,15,39,55,39,15,3]

              [6,15,28,35,28,15,6]

              [7,13,19,22,19,13,7]

得到四层过滤后的高斯图像:

         

Figure 8高斯图像

上图从上到下、从左到右依次是标准差为𝜎,𝑘𝜎、𝑘2𝜎、𝑘3𝜎的高斯核过滤得到的图像。

2. 检测特征点

高斯滤波图像两两相减得到DOG金字塔,共三层。

得到三层DOG图像:

Figure 9 DOG图像

选取尺度最近的高斯图像,与上下两层图像共26个相邻点比较,若其值最大,则为预特征点。因后续最次近邻匹配可以有效过滤不必要的特征点,所以这里取得的预特征点,就作为特征点进行后续运算。

项目取得特征点图一(左)共388个,图二(右)共374个。特征点的显示如下图所示。

Figure 10特征点

3. 特征点方向生成

特征点检测完成后,根据特征点位置选取领域,在领域内按方向计算梯度值之和,生成直方图。梯度值之和最大的方向,即为特征点主方向。依次计算所有特征点的主方向,然后在做极坐标旋转,实现旋转不变性。

Figure 11特征点主方向

4. 描述符生成

将旋转过后,16个子区域、8个方向的梯度值之和,做高斯加权处理,得到128位的描述符。

5. 描述符匹配

分别计算出两幅图的描述符之间的欧式距离,记录最小距离和次近邻距离,若次近邻距离大于最近距离的2倍,则两者匹配成功。因FPGA流水限制,本项目在最近邻和次近邻距离的数据中加入了图一特征点的位置信息,36位数据中前16位为位置信息,后20位为距离值。128维描述符因占用资源过多,削减到了64维,占512位储存。

Figure 12最小和次近邻距离

最后得到匹配图:

Figure 13匹配图

6. RANSAC筛选匹配点

       通过以太网将筛选过的匹配点和单应性矩阵系数传到MATLAB中,由MATLAB显示匹配点对,并做图像拼接。

Figure 14 RANSAC匹配图

Figure 15 RANSAC拼接图

       7. GUI界面设计

       8. 吞吐量和资源占比

       最差负余量WNS5.95,吞吐量246.9hps。使用LUTs32303,占比60.7%;FF37515,占比35.3%。100对特征点检测耗时不超过10ms。检测到的匹配点不少于20对时,匹配效果良好,少于20对时,有出错的可能。

第四部分  总结

       此工程能较好的显示两幅图的匹配点连接和拼接,但仍有不足之处:处理图像较小,输入数据仅为256x256的数据,不足以显示硬件的加速作用。我们对ARM端的操作不够熟练,项目几乎都在PL端完成,而ZYNQ的优势就在于ARM的操作。同时,因为FPGA对浮点操作困难,所以工程中很多系数精度不够,导致最后拼接的图像没有完全融合,过渡也很生硬。

       之后我们会在此工程的基础上加入PS端的操作,更好的计算大型图像的匹配与拼接。

第五部分  参考文献

[1]王瑞霞. 基于SIFT配准算法的全景图像拼接系统的FPGA实现[D].南京理工大学,2015.

[2] 张克敏. 基于虚拟现实的机器人仿真研究[D]. 重庆大学, 2012.

[3] 陈锦伟. 敏捷卫星遥感图像配准和拼接技术研究[D]. 浙江大学, 2014.

[4] 桂辉. 安防监控中多相机图像拼接相关问题的研究

[D]. 浙江工业大学, 2015.[5] 王 曼 , 李 涛 . 视 频 拼 接 系 统 与 我 院 手 术 示 教 系 统 的 结 合 应 用 .[J]. 中 国 医 疗 设 备 ,2018,33(11):168-171.

[6] 张宝龙, 李洪蕊, 李丹, 等. 一种针对车载全景系统的图像拼接算法的仿真[J]. 电子 与信息学报, 2015,37(05):1149-1153.

[7] 白瑞广. 全景视频系统若干关键技术研究[D]. 湘潭大学, 2014.

[8] 陶清. 实时全景视频拼接系统的FPGA设计研究[D].华侨大学,2019.

[5] Lindeberg  T.  Detecting  salient  blob-like  image  structures  and  their scales  with  a  scale-space  primal  sketch:  A  method  for focus-of-attention[J].  International  Journal  of Computer Vision, 1993, 11(3):283-318.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于SIFT的图像拼接系统 的相关文章

  • 学习C++:C++进阶(五)CMake应用篇---集成第三方库和依赖管理

    目录 第二部分 xff1a 实用 CMake xff08 Practical CMake Getting Your Hands Dirty with CMake xff09 3 0 集成第三方库和依赖管理 xff08 Integrating
  • 2.ORB-SLAM2改进版本--稠密建图版本解析

    目录 1 修改思路 2 基本概念 nbsp 2 1 统计滤波 2 2 体素滤波
  • FreeRTOS 的命名规则

    初学 FreeRTOS 的用户对其变量和函数的命名比较迷惑 xff0c 下面专门做一下介绍 xff1a 变量 uint32 t 定义的变量都加上前缀 ul u 代表 unsigned 无符号 xff0c l 代表 long 长整型 uint
  • 【单目测距和双目测距比较】

    单目测距和双目测距比较 单 双目方案的优势与难点单目测距双目测距 双目测距实现步骤实现过程 单 双目方案的优势与难点 单目测距 优点 xff1a 单目的优势在于成本较低 xff0c 对计算资源的要求不高 xff0c 系统结构相对简单 缺点
  • ROS学习笔记(3):添加第三方依赖库

    最近在工控机上加入CAN卡 xff0c 想利用CAN卡来做为数据收发 现在在工程中加入CAN卡的头文件和自己做的cpp文档 已经申明了 函数 xff0c 但是还是会出现上图所示的错误 xff0c 经过一晚上的战斗算是搞清楚了 感谢 64 头
  • Java面试题及答案2019版(上)

    1 面向对象的特征有哪些方面 xff1f 答 xff1a 面向对象的特征主要有以下几个方面 xff1a 抽象 xff1a 抽象是将一类对象的共同特征总结出来构造类的过程 xff0c 包括数据抽象和行为抽象两方面 抽象只关注对象有哪些属性和行
  • git到远程出现的一些问题以及解决方法

    我们首先回顾一下 git reset命令 xff1a 1 git reset mixed xff1a 此为默认方式 xff0c 等同于不带任何参数的git reset 2 git reset soft 回退到某个版本 xff0c 只回退了c
  • CMakeLists.txt 和 package.xml 重要内容详解

    边学边看 xff0c 学到什么分享什么 CMakeLists txt 构建配置文件package xml 功能包配置文件 上面的意思个人理解就是功能包本身如果要在别处运行 xff0c 需要什么样的条件在xml文件中看 功能包自身 xff0c
  • Docker运行Prometheus(普罗米修斯)

    1 编辑yaml格式 xff0c 进行自我监控 mkdir etc prometheus cd etc prometheus vi etc prometheus prometheus yml global scrape interval 1
  • Kubernetes(k8s)安装Dashboard(控制面板)

    参考文章 xff1a https www jianshu com p f7ebd54ed0d1 1 默认情况下不会部署 Dashboard xff0c 可以通过以下命令部署 xff1a kubectl apply f https raw g
  • 航模无刷电机常见参数

    1 xff0c KV值 xff1a 表示电机运行速度的指标 xff0c 电机转速 61 KV值 x 工作电压 2 xff0c 空载电流 xff1a 指电机不带负载 xff08 螺旋桨等 xff09 时的额定工作电流 3 xff0c 电阻 x
  • RealSense D435i深度相机介绍

    文章目录 D435i硬件结构及各个组件原理详解前言一 硬件参数信息二 视觉处理器D4三 深度模块四 红外投影仪 Infrared Projector 五 彩色图像信号处理机 ISP 六 IMU D435i硬件结构及各个组件原理详解 前言 R
  • Ubuntu20.04下安装intel Realsense SDK

    1 安装安装依赖项 sudo apt span class token operator span get install libudev span class token operator span dev pkg span class
  • MiniFly的学习经历

    MiniFly的学习经历 基于MiniFly的无人机编队系统一台遥控器同步控制多台无人机无线通讯方面遥控代码部分无人机通信代码部分 一台遥控器分布控制多台无人机无人机控制部分 使用电脑的串口上位机控制无人机遥控串口通信接收指令指令设计 基于
  • 【NOJ1044】【算法实验三】【BFS_分支限界】独轮车

    1044 独轮车 时限 xff1a 1000ms 内存限制 xff1a 10000K 总时限 xff1a 3000ms 描述 独轮车的轮子上有红 黄 蓝 白 绿 xff08 依顺时针序 xff09 5种颜色 在一个如下图所示的20 20的迷
  • 【杭电100题】2073 无限的路

    题目链接 xff1a http acm hdu edu cn showproblem php pid 61 2073 xff08 c语言的double类型printf lf 显示0 00000问题 xff09 xff1a https blo
  • 【杭电100题】2094 产生冠军

    原题 xff1a http acm hdu edu cn showproblem php pid 61 2094 最近很喜欢用map 把成功者 失败者都存起来 然后在成功者里把曾经失败的划掉 最后成功者里如果只剩一个人 xff0c 冠军产生
  • docker命令详解

    镜像下载 搜索镜像docker search 43 镜像名字 docker search centos 从Docker Hub中搜索符合条件的镜像 下载镜像 docker pull 43 镜像名字 docker pull centos 查看
  • uCos中的信号量机制

    文章目录 1 背景2 概述2 1 主要机制及应用2 2 同步或通信的基本方式 3 信号量3 1 主要机制及应用3 2 分类3 3 互斥信号量3 3 1 嵌套 递归 资源访问3 3 2 删除安全 3 4 各种互斥机制的比较3 5 二值信号量3
  • opencv里的几种图像数据格式(CV_8UC3,CV_32FC3,CV_64FC3等)

    opencv里的几种图像数据格式 xff08 CV 8UC3 xff0c CV 32FC3 xff0c CV 64FC3等 xff09 参考 xff1a https blog csdn net qq 29540745 article det

随机推荐

  • android:使用audiotrack 类播放wav文件

    参考 xff1a http mindtherobot com blog 624 android audio play an mp3 file on an audiotrack http baike baidu com view 14471
  • 逆变电路

    逆变的概念 与整流相对应 xff0c 直流电 变成 交流电 交流侧接电网 xff0c 为 有源逆变 交流侧接负载 xff0c 为 无源逆变 xff0c 本章主要讲述无源逆变 逆变与变频 变频电路 xff1a 分为 交交变频 和 交直交变频
  • windows找不到树莓派IP地址

    树莓派用网线连接电脑 xff0c 第一次正常 xff0c 而第二次用arp a找不到树莓派的地址 xff0c 网上查资料 xff0c 网络共享关闭再重新打开依旧找不到 xff0c 后来发现网络处以太网一直显示正在识别 xff0c 把以太网禁
  • unity报错NullReferenceException: Object reference not set to an instance of an object

    在做unity3d的UDP通信时 xff0c 遇到了该的错误 之前初始化用的Start xff0c 运行正常 xff0c 某天突然报错 xff0c 后面看到了文章 https blog csdn net u011185231 article
  • Unity3D UDP通信

    补一下前面遇到的问题 最近在做树莓派与Unity3D的UDP通信 xff0c 树莓派通过网线连接电脑 xff0c 设置网络共享 树莓派作为客户端 xff08 python xff09 xff0c Unity3D作为服务端 xff08 C x
  • ROS机械臂模型的调试

    用传感器串口输出数据控制虚拟机ROS中的6DOF机械臂模型 xff08 每次重新调试都需要一定的时间熟悉过程 xff0c 所以记录一下 不记录代码只记录调试过程 xff09 串口配置 传感器通过USB转TTL模块接到电脑 xff0c 在虚拟
  • openrave

    配置IKFAST求解器 xff0c 装openrave装了一天终于在差三分钟十一点的时候出来了界面 ubuntu18的boost默认1 65 xff0c 但是好像和openrave不匹配 xff0c 换成了1 58 如果后续使用没问题就来详
  • ROS1代码转ROS2

    先占个坑 xff0c 等我做完写总结
  • 四元数基本概念&&四元数3D旋转(求两个四元数的夹角)

    四元数基本概念 1 四元数定义向量形式 xff1a 模长 xff1a 2 四元数加减法 3 四元数的逆和共轭 当q是单位四元数时 xff0c 4 四元数乘法4 1 标量乘法 xff1b 标量s 四元数与标量相乘满足乘法交换律 xff1a 4
  • 树莓派安装64bit系统并安装miniconda

    树莓派安装64bit系统并安装miniconda 某机械臂只有arm64的动态链接库 xff0c 所以如题 中间过程无比曲折 xff0c 记录一下 1 安装64bit系统 1 1 下载系统 树莓派系统官网 xff1a https www r
  • 四旋翼无人机学习第23节--原理图与PCB库开源计划

    在之前的教程中 xff0c 我们学到了原理图和PCB库的绘制方法 xff0c 了解了绘制的基本方法 在之后的学习中 xff0c 我打算从头开源自己的原理图和PCB库 不定期更新 xff0c 方便大家快速的进行PCB设计 这里有几点想要说明
  • 基于openmv的无人机Apriltag动态追踪降落完整项目资料(labview+openmv+apriltag+正点原子四轴)

    前言 xff1a 之前假期做的一个小项目 xff0c 炸了好几套桨叶233 xff0c 分享出来希望能帮助更多人快速学习 使用正点原子ATK MiniFly 飞行器二次开发多旋翼Apriltag追踪 xff1b 使用LABVIEW自主设计地
  • 某公司算法岗笔试题(部分)

    今天参加了第一次笔试 xff0c 准备的不是很好 xff0c 分享几道题 1 选择题 xff1a int i 61 1 const int j 61 1 下列错误的是 xff1a const int p1 61 amp i const in
  • 五、ROS使用serial包进行串口通信

    五 ROS使用serial包进行串口通信 1 下载串口调试助手CuteCom2 下载虚拟串口模拟器socat3 下载串口调试助手minicom4 安装serial串口功能包5 创建工作空间6 创建功能包7 创建发布者8 配置CMakeLis
  • 六、ROS安装ros_canopen模块

    六 ROS安装ros canopen模块 1 查看自己的ROS版本2 下载ros canopen源码 1 查看自己的ROS版本 首先查看自己的ROS版本 xff1a 我的是melodic 终端1 roscore 终端2 rosparam l
  • 七、ROS-CAN通信

    七 ROS CAN通信 1 测试官方样例2 移植到ROS 1 测试官方样例 我这里用的是CANalyst II分析仪 创芯科技 Linux版 我的系统是 xff1a Ubuntu18 04 6 LTS 我的ROS版本 xff1a melod
  • Ubuntu22.04 实用工具总结 Toniht笔记

    上一篇实用工具总结 xff0c 被莫名其妙审核不通过 xff0c 没涉及任何墙的字眼 xff0c 只不过写了Q v 的安装过程 xff0c 重新写一遍笔记 时隔半个月 xff0c 又被挂了 xff1f 我删的已经只剩一个名字了 离了大谱 U
  • 受苦笔记之Ubuntu 18.04 ros相机标定

    个人博客 TanJX的自留地 Ubuntu 18 04 相机标定 之前用ubuntu 16 04想做相机标定但是一直出错 xff0c 所以换了系统后我又回来折腾了 安装ROS就不说了 主要是ROS下的usb cam程序包 xff0c 之前一
  • 嵌入式Linux自学笔记(三)——输入输出系统应用编程、网络通信、多线程编程

    一 输入输出系统应用编程 1 输入系统简介 1 1 输入设备 常见的输入设备有键盘 鼠标 遥控杆 书写板 触摸屏等等 xff0c 用户通过这些输入设备与 Linux 系统进行数据交换 1 2 输入系统 Linux 系统为了统一管理这些输入设
  • 基于SIFT的图像拼接系统

    第一部分 设计概述 设计目的 图像拼接技术是计算机视觉与图像处理领域的一个研究重点 xff0c 广泛应用于各个领域 它能够很好地实现图像的延伸和连续 xff0c 保留多组图像的共有信息 xff0c 去除杂冗 xff0c 提高信息存储量 xf