一种基于OpenCV的三维重建实现方案

合集下载

opencv 多相机光束平差法

opencv 多相机光束平差法

Opencv多相机光束平差法1. 简介多相机光束平差法(Bundle Adjustment)是一种用于相机标定和三维重建的方法,它通过优化相机的内外参数和三维点的位置,使得投影误差最小化。

OpenCV是一个流行的计算机视觉库,其中包含了用于多相机光束平差法的函数和工具。

在本文中,我们将介绍多相机光束平差法的基本原理和OpenCV中相关的函数和用法。

我们将从相机标定开始,然后介绍如何使用多相机光束平差法进行三维重建。

2. 相机标定相机标定是多相机光束平差法的第一步,它的目的是确定相机的内外参数。

在OpenCV中,我们可以使用cv::calibrateCamera函数来进行相机标定。

相机标定需要至少一副棋盘格图像,通过对图像中的棋盘格进行检测和角点提取,可以计算出相机的内外参数。

以下是相机标定的步骤:1.收集棋盘格图像:在不同的角度和位置拍摄多张包含棋盘格的图像。

2.棋盘格角点检测:使用OpenCV中的cv::findChessboardCorners函数,对每张图像进行角点检测。

3.角点提取:使用cv::cornerSubPix函数对检测到的角点进行亚像素级别的精确提取。

4.相机标定:使用cv::calibrateCamera函数,输入检测到的角点和相应的世界坐标,计算相机的内外参数。

相机标定后,我们可以得到相机的内外参数矩阵,包括相机的焦距、主点、畸变系数、旋转矩阵和平移向量等。

3. 多相机光束平差法多相机光束平差法是通过优化相机的内外参数和三维点的位置,使得投影误差最小化。

在OpenCV中,我们可以使用cv::bundleAdjust函数来进行多相机光束平差法。

多相机光束平差法的步骤如下:1.三维点初始化:首先,需要初始化一些三维点的位置,可以使用相机标定得到的相机姿态和特征点的匹配结果进行三角化得到初始的三维点。

2.投影误差计算:对于每个相机,计算其投影误差,即将三维点投影到图像平面上,并计算其与对应的特征点之间的距离。

转OpenCV学习笔记17双目测距与三维重建

转OpenCV学习笔记17双目测距与三维重建

转OpenCV学习笔记17 双目测距与三维重建三、双目定标和双目校正双目摄像头定标不仅要得出每个摄像头的内部参数,还需要通过标定来测量两个摄像头之间的相对位置(即右摄像头相对于左摄像头的三维平移t和旋转R参数)。

图6要计算目标点在左右两个视图上形成的视差,首先要把该点在左右视图上两个对应的像点匹配起来。

然而,在二维空间上匹配对应点是非常耗时的,为了减少匹配搜索范围,我们可以利用极线约束使得对应点的匹配由二维搜索降为一维搜索。

图7而双目校正的作用就是要把消除畸变后的两幅图像严格地行对应,使得两幅图像的对极线恰好在同一水平线上,这样一幅图像上任意一点与其在另一幅图像上的对应点就必然具有相同的行号,只需在该行进行一维搜索即可匹配到对应点。

图8 1.关于cvStereoCalibrate的使用如果按照Learning OpenCV的例程,直接通过cvStereoCalibrate来实现双目定标,很容易产生比较大的图像畸变,边角处的变形较厉害。

最好先通过cvCalibrateCamera2()对每个摄像头单独进行定标,再利用cvStereoCalibrate进行双目定标。

这样定标所得参数才比较准确,随后的校正也不会有明显的畸变。

我使用的程序主要基于Learning OpenCV的例程ch12_ex12_3.cpp,其中主要部分如下:///////////////////////////////////////////////////////////////// ///////////是否首先进行单目定标?cvCalibrateCamera2(&_objectPoints,&_imagePoints1,&_npoints,imageSi ze,&t_M1,&t_D1,NULL,NULL,CV_CALIB_FIX_K3);cvCalibrateCamera2(&_objectPoints,&_imagePoints2,&_npoints,imageSize, &t_M2,&t_D2,NULL,NULL,CV_CALIB_FIX_K3);///////////////////////////////////////////////////////////////////// ///////进行双目定标cvStereoCalibrate(&_objectPoints,&_imagePoints1,&_imagePoints2,&_npoi nts,&t_M1,&t_D1,&t_M2,&t_D2,imageSize,&t_R,&t_T,&t_E,&t_F,cvTermCrite ria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,100,1e-5));//flags为默认的CV_CALIB_FIX_INTRINSIC上面的t_M1(2),t_D1(2)分别是单目定标后获得的左(右)摄像头的内参矩阵(3*3)和畸变参数向量(1*5);t_R,t_T分别是右摄像头相对于左摄像头的旋转矩阵(3*3)和平移向量(3*1),t_E是包含了两个摄像头相对位置关系的Essential Matrix(3*3),t_F则是既包含两个摄像头相对位置关系、也包含摄像头各自内参信息的Fundamental Matrix(3*3)。

opencv双目视觉三维重建代码

opencv双目视觉三维重建代码

一、概述双目视觉是一种通过两个摄像头拍摄同一场景来获取深度信息的技术,它在计算机视觉领域有着广泛的应用。

在双目视觉中,图像识别、匹配和三维重建是其中的关键环节。

OpenCV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。

本文将介绍使用OpenCV实现双目视觉三维重建的代码,帮助读者快速上手这一技术。

二、环境准备在开始编写双目视觉三维重建代码之前,我们需要准备好相应的开发环境。

首先确保已经安装了OpenCV库,可以通过冠方全球信息站或者包管理工具进行安装。

需要准备两个摄像头,保证两个摄像头的焦距、畸变参数等校准信息。

确保安装了C++或者Python的开发环境,以便编写和运行代码。

三、双目视觉图像获取1. 初始化摄像头在代码中需要初始化两个相机,并设置相应的参数,例如分辨率、曝光时间、白平衡等。

可以使用OpenCV提供的方法来实现这一步骤。

2. 同步获取图像由于双目视觉需要同时获取两个摄像头的图像,所以我们需要确保两个摄像头的图像获取是同步的。

可以通过多线程或者硬件同步的方式来实现图像的同步获取。

四、双目视觉图像预处理1. 图像校准由于摄像头的畸变等因素会影响后续的视图匹配和三维重建结果,因此需要对图像进行校准。

可以使用OpenCV提供的摄像头校准工具来获取相机的内参和外参,通过这些参数对图像进行去畸变处理。

2. 图像匹配在获取到双目图像之后,需要对这两个图像进行特征提取和匹配。

可以使用SIFT、SURF等特征提取算法来提取图像的关键点,并使用特征匹配算法(例如FLANN或者暴力匹配)来进行图像匹配。

五、立体匹配1. 视差计算在进行图像匹配之后,我们可以通过计算视差来获取场景中不同物体的深度信息。

OpenCV提供了多种视差计算算法,例如BM、SGBM 等,可以根据实际情况选择适合的算法。

2. 深度图生成通过视差计算得到的视差图可以进一步转换为深度图,从而得到场景中每个像素点的深度信息。

一种基于OpenCV三维重建实现方案

一种基于OpenCV三维重建实现方案

---------------------------------------------------------------范文最新推荐------------------------------------------------------ 一种基于OpenCV三维重建实现方案摘要以计算机视觉三维重建技术为研究对象,分析了开放计算机视觉函数库OpenCV中的三维重建模型,通过六个步骤,特别是摄像机标定和立体匹配中极线约束方法的使用,给出了基于OpenCV的三维重建算法。

该算法充分发挥了OpenCV的函数库功能,提高了计算的精度效率,具有良好的跨平台移植性,可以满足各种计算机视觉系统的需要。

关键词计算机视觉;三维重建;OpenCV;摄像机标定;极线约束,应、特征检测与匹配定位精度等,一般来讲,距离测量精度与匹配定位精度成正比,与摄像机基线长度成反比。

增大基线长度可以改善深度测量精度,但同时会增大图像间的差异,增加匹配的困难程度。

因此,要设计一个精确的立体视觉系统,必须综合考虑各方面的因素,保证各环节都具有较高的精度。

2.6后处理[6]后处理包括深度插值、误差校正和精度改善。

立体视觉的最终目的是恢复景物可视表面的完整信息,目前,无论哪种匹配方法都不可能恢复出所有图像点的视差,因此对于一个完整的立体视觉系统,必须进行最终的表面内插重建。

3基于OpenCV的三维重建OpenCV[2]中采用的定标方法是介于传统定标方法和自定标方法之间的一种方法,由张正友在其论文[3]中提出的。

这种方法不需要知道摄像机运动的具体信息,这点比传统定标技术更为灵活,同时仍需要一个特定的标定物以及一组已知的特征基元的坐标,这点不如自定标灵活。

它通过在至1 / 7少3个不同的位置获取标定物的图像,计算出摄像机所有的内外参数。

由于它比传统定标技术更为灵活,又可以得到不错的定标精度,所以被OpenCV所采纳。

在这个模型的定标过程中将用到的三个坐标系:图像坐标系,摄像机坐标系和世界坐标系。

基于OpenCV的立体图像三维重建关键技术实现

基于OpenCV的立体图像三维重建关键技术实现

Supervisor:Zhang ChunSen
Abstract
Our world is three-dimensional, but camera image is two-dimensional, in order to obtain the three-dimensional information of objective object’s by the two-dimensional images, we need to rebuild the three-dimensional model of the target so that we can target the quantitative analysis. The same subject in computer vision and photogrammetry community,the stereo vision-based three-dimensional reconstruction techniques have been widely used in medical imaging, robot navigation, virtual reality, terrain exploration and other fields. The 3D reconstruction’s key technologies based on stereo vision include camera calibration, feature extraction and stereo matching, determine depth information and the 3D coordinates calculation. Against the problem of camera calibration in stereo vision, on the basis of analysis the camera calibration model based on OpenCV and the existing camera calibration method, This article give a method which consider the camera lens distortion, based on the OpenCV stereo camera calibration. By using this article’s method and Zhang Zhengyou Mat Lab Calibration Toolbox calibration comparison experiments on real data, the experiments show that the calibration parameter’s results stability , the accuracy can meet the requirements of stereo vision 3D reconstruction and other applications. Direct the problem of feature extraction and matching in three-dimensional reconstruction, this paper expounds the epipolar constraint of matching criteria, put matching constraints in a pole line, effectively removing the error matching and greatly improve the efficiency of matching. This paper use the latest research achievements in image processing— SIFT feature extraction matching algorithm,then designed two experiments to test the performance of the SIFT algorithm, experiments show that the algorithm can solve the problem in stereo matching such as image rotation, zooming, panning, etc. It has a high matching accuracy,it is a very good algorithm.

如何利用计算机视觉技术进行3D物体重建与识别

如何利用计算机视觉技术进行3D物体重建与识别

如何利用计算机视觉技术进行3D物体重建与识别计算机视觉技术是指通过计算机对图像或视频进行分析、理解和处理的一种技术。

随着计算机视觉技术的不断发展,3D物体重建与识别成为了该领域的研究热点之一。

本文将介绍如何利用计算机视觉技术进行3D物体重建与识别的方法和应用。

一、3D物体重建技术1. 点云重建:点云是一种用于描述物体表面形状的数学模型。

点云重建技术通过从多个图像或激光扫描数据中提取特征点,并利用这些特征点生成点云模型来实现3D物体的重建。

2. 立体视觉重建:立体视觉重建是通过分析多个视角的图像,利用物体在不同视角下的几何关系,从而恢复出物体的三维形状。

它可以通过双目相机或多目相机获取多个视角的图像,并通过图像配准和三角测量等技术实现物体的三维重建。

3. 深度学习重建:深度学习在计算机视觉领域的应用日益广泛,其中包含了用于3D物体重建的网络模型。

通过训练神经网络,可以学习到从图像到三维形状的映射关系,从而实现3D物体重建。

二、3D物体识别技术1. 物体检测与识别:物体检测是指在图像或视频中准确定位物体的位置,并识别物体的类别。

常见的物体检测算法包括基于特征的方法、机器学习方法和深度学习方法等。

物体检测与识别技术可以应用于自动驾驶、智能监控等领域。

2. 三维物体姿态估计:三维物体姿态估计是指通过计算机视觉技术来推测物体在三维空间中的位置和姿态。

通过从多个视角的图像中分析物体的几何特征,可以实现对物体的姿态估计,该技术在虚拟现实、增强现实等领域有着广泛的应用。

三、计算机视觉技术的应用场景1. 工业制造:利用计算机视觉技术进行3D物体重建和识别,可以实现自动检测和质量控制,提高生产效率和产品质量。

2. 虚拟现实和增强现实:通过3D物体重建和识别技术,可以将真实世界中的物体重建成虚拟模型并投射到虚拟现实或增强现实环境中,提供更加沉浸式和真实感的用户体验。

3. 智能监控:计算机视觉技术可以应用于智能监控系统中,实现对特定物体或行为的自动识别和监测,提高安全性和便捷性。

OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算

OpenCV学习笔记(18)双目测距与三维重建的OpenCV实现问题集锦(三)立体匹配与视差计算

3. 怎样获取与原图像有效像素区域相同的视差图?
在 OpenCV2.0 及以前的版本中,所获取的视差图总是在左侧和右侧有明显的黑色区域,这些区域没 有有效的视差数据。视差图有效像素区域与视差窗口(ndisp,一般取正值且能被 16 整除)和最小 视差值(mindisp,一般取 0 或负值)相关,视差窗口越大,视差图左侧的黑色区域越大,最小视差 值越小,视差图右侧的黑色区域越大。其原因是为了保证参考图像(一般是左视图)的像素点能在目 标图像(右视图)中按照设定的视差匹配窗口匹配对应点,OpenCV 只从参考图像的第 (ndisp - 1 + mindisp) 列开始向右计算视差,第 0 列到第 (ndisp - 1 + mindisp) 列的区域视差统一设置为 (mindisp - 1) *16;视差计算到第 width + mindisp 列时停止,余下的右侧区域视差值也统一设 置为 (mindisp - 1) *16。
(3) BM 算法比 2.0 版性能有所提升, 其状态参数新增了对左右视图感兴趣区域 ROI 的支持 (roi1 和 roi2,由 stereoRectify 函数产生); (4) BM 算法和 GC 算法的核心代码改动不大, 主要是面向多线程运算方面的 (由 OpenMP 转向 Intel TBB); (5) cvFindStereoCorrespondenceBM 函数的 disparity 参数的数据格式新增了 CV_32F 的支持,这 种格式的数据给出实际视差,而 2.0 版只支持 CV_16S,需要除以 16.0 才能得到实际的视差数值。
2. 用于立体匹配的图像可以是彩色的吗?
在 OpenCV2.1 中, BM 和 GC 算法只能对 8 位灰度图像计算视差, SGBM 算法则可以处理 24 位 (8bits*3) 彩色图像。所以在读入图像时,应该根据采用的算法来处理图像:

旧题新作——基于MATLAB的切片三维重建

旧题新作——基于MATLAB的切片三维重建

旧题新作——基于MATLAB的切片三维重建
切片三维重建是一种非常重要的方法,可以用于对三维物体进行分析、计算和可视化。

本文介绍了一种基于MATLAB的切片三维重建方法。

首先,我们需要对三维物体进行切片,将其分解为一系列二维图像。

这可以通过先将
三维物体转换为灰度图像,然后利用阈值分割和连通区域分析等方法来实现。

分析了三维
物体的特点后,我们可以确定切片方向和间隔。

然后,我们需要对每个切片图像进行处理,将每个图像中的物体进行分割,得到物体
的轮廓线。

这可以通过使用图像处理工具箱中的边缘检测算法来实现。

经过处理后,我们
可以获得每个切片图像中物体的轮廓线。

接着,我们需要将每个切片图像中的轮廓线进行重建,得到三维物体的表面。

这可以
通过使用曲面拟合算法来实现。

曲面拟合算法可以将每个轮廓线中的点拟合成一个三维曲面,最终得到整个物体的表面。

最后,我们可以将三维物体进行可视化,得到一个真实的三维模型。

这可以通过使用
三维可视化工具来实现。

将三维物体的表面数据输入到可视化工具中,即可得到一个真实
的三维模型。

同时,我们也可以对三维模型进行进一步的处理和分析,比如计算表面积和
体积等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

u0 v0 1
由于矩阵A包含了摄像机全部的6个内参数
( k , l , u0 , v0 , f ,0) ,所以称A为摄像机内参数矩阵。 Pc 为模型
的外参数矩阵,可以通过以下公式得到:
⎛ Xc ⎞ ⎛ Xw ⎞ ⎜Y ⎟ ⎜ ⎟ R t ⎛ ⎞ ⎜ c ⎟ = 3×3 3×1 ⎜ Yw ⎟ T ⎜ Zc ⎟ ⎜ 1 ⎟ ⎝0 ⎠ ⎜ Zw ⎟ ⎜ ⎟ ⎜ ⎟ 1 ⎝ ⎠ ⎝ 1 ⎠
2.3 特征提取
由多视点的视差确定 3-D 信息,关键是确定场景中同一 物点在不同图像中的对应关系,解决该问题的方法之一是选 择合适的图像特征并进行匹配。特征是像素或像素集合或它 们的抽象表达,常用的匹配特征主要有点状特征、线状特征 和区域特征等。一般来讲,大尺度特征含有较丰富的信息, 本身数目较少,易于得到快速匹配,但对它们的提取与描述 相对复杂,定位精度也差;而小尺度特征本身的定位精度高, 表达描述简单,但数目较多,所含信息量却较少,因而在匹 配时需要采用较强的约束准则和匹配策略。 合理的选择匹配特征对立体匹配工作有十分重要的意 义,应综合考虑各种因素,根据不同的景物特点和应用要求 选择。一般的,对于包含有大量非规则形状和高度突变的场 景,比较适合提取点状特征,因为提取线段、区域等特征既 困难又会引入误差:对于具有规则结构的场景,若线段和区域 特征的提取和描述比较容易且误差较小,应提取线段特征以 实现快速匹配。
开发与应用
计算机与信息技术
·47·
一种基于 OpenCV 的三维重建实现方案
李健 史进
西安 710001) (陕西科技大学 电气与信息工程学院,陕西

要 本文以计算机视觉三维重建技术为研究对象,分析了开放计算机视觉函数库 OpenCV 中的三维重建模型,通过
六个步骤,特别是摄像机标定和立体匹配中极线约束方法的使用,给出了基于 OpenCV 的三维重建算法。该算法充分发挥了 OpenCV 的函数库功能,提高了计算的精度效率,具有良好的跨平台移植性,可以满足各种计算机视觉系统的需要。
4
实验结果
基于上述原理和OpenCV的函数,利用VC6.0开发了一个
参考文献
[1] Park J S. Interactive 3D reconstruction from multiple images:a primitive-based approach [J]. Pattern Recognition Letters, 2005, 26(16) : 2558-2571 [2] Intel Corporation. Open Source Computer Vision Library Reference Manual [S]. 2001-12 [3] 马颂德, 张正友. 计算机视觉-计算理论与算法基础 [M]北京: 科学出版社, 2003 [4] 毛剑飞,邹细勇,诸静. 改进的平面模板两步法标定摄 像机 [J]. 中国图像图形学报, 2004, 9(7):846-852 [5] 徐奕,周军,周源华.立体视觉匹配技术.计算机工程 与应用,2003,39(15):1-5 [6] Pollefeys M, Koch R, Van Gool L. Self-calibration and Metric Reconstruction in Spite of Varying and Unknown Internal Camera Parameters[C]. Proc. of International Conference on Computer Vision, Bombay, India, 1998: 90 [7] Hartley R I, Zisserman A. Multiple View Geometry in Computer Vision [M]. Cambridge University Press, 2000 [8] Wu Fuchao, Li Hua, Hu Zhanyi. A New Camera Self-calibration Method Based on Active Vision System [J]. Chinese Journal of Computers, 2000,23(11): 1130-1139 [9] 文贡坚, 王润生. 一种稳健的直线提取算法[J ]. 软 件学报 2001 , 12 (11) : 1660-1666 基金项目:陕西省教育厅专项科研计划项目(05JK145) 收稿日期:3 月 19 日 修改日期:3 月 28 日 作者简介:李建(1975-) ,男,陕西蒲城,教授,博士,
多因素,如光照条件、景物几何形状和物理特性、噪声干扰 和畸变以及摄像机特性等,都被综合成单一的图像灰度值。 因此,要准确的对包含了如此之多不利因素的图像进行无歧 义匹配十分困难。 立体匹配的方法主要分为两大类,即灰度相关和特征匹 配。灰度相关直接用象素灰度进行匹配,该方法优点是匹配 结果不受特征检测精度和密度的影响,可以得到很高的定位 精度和密集的视差表面;缺点是依赖于图像灰度统计特性,对 景物表面结构以及光照反射较为敏感,因此在空间景物表面 缺乏足够纹理细节、 成像失真较大(如基线长度过大)的场合存 在一定困难。基于特征的匹配方法的优点是使用从强度图像 得到的特征作为匹配基元,所以在环境照明发生变化的情况 下较为稳定;缺点是特征提取需要额外计算量,另外由于特征 是离散的,所以不能在匹配后直接得到密集的视差场。 匹配方法需要解决以下问题:选择正确的匹配特征;寻找 特征间的本质属性;建立能正确匹配所选特征的稳定算法。

ቤተ መጻሕፍቲ ባይዱ
⎛1 ⎜k ⎛u⎞ ⎜ ⎜v⎟ = 1 ⎜ 0 ⎜ ⎟ Z ⎜ c ⎜1⎟ ⎜0 ⎝ ⎠ ⎜ ⎜ ⎝
⎞ 0 u0 ⎟ ⎛ ⎟⎜ f 1 v0 ⎟ ⎜ 0 ⎟⎜ l 0 0 1 ⎟⎜ ⎝ ⎟ ⎟ ⎠
− f cot θ f sin θ 0
⎞⎛ X ⎞ 0 0⎟⎜ c ⎟ Y 0 0⎟⎜ c ⎟ ⎟⎜ Z ⎟ 1 0⎟⎜ c ⎟ ⎠⎝ 1 ⎠
(
ry
rz ) 为旋转矩阵, t3×1 = ( t x
ty
tz ) 为
T
2.5 深度信息确定
当通过立体匹配得到视差图像后,就可以确定深度图像 并恢复场景 3-D 信息了。影响距离测量精度的因素主要有摄 像机标定误差、数字量化效应、特征检测与匹配定位精度等, 一般来讲,距离测量精度与匹配定位精度成正比,与摄像机 基线长度成反比。增大基线长度可以改善深度测量精度,但 同时会增大图像间的差异,增加匹配的困难程度。因此,要 设计一个精确的立体视觉系统, 必须综合考虑各方面的因素, 保证各环节都具有较高的精度。
[7] [8]
图2 做Canny处理后的比较图 三维重建中最大的难点也是最重要的部分就是立体匹配 部分。在OpenCV中选用基于特征匹配中的极线约束方法[9]。 假设空间一点P, 它在两个摄像机成像平面上的投影点分 别为P1和P2,如图3所示。其中,C1和C2分别为两个摄像机的 中心,即摄像机坐标系的原点。 在极线几何中,我们称C1和C2的连线为基线。基线和两 摄像机成像平面的交点e1和e2分别为两摄像机的极点,它们分 别为两个摄像机中心C1和C2在对应的摄像机成像平面上的投
3
基于 OpenCV 的三维重建
OpenCV[2]中采用的定标方法是介于传统定标方法和自定
标方法之间的一种方法,由张正友在其论文[3]中提出的。这种 方法不需要知道摄像机运动的具体信息,这点比传统定标技 术更为灵活,同时仍需要一个特定的标定物以及一组已知的 特征基元的坐标,这点不如自定标灵活。它通过在至少 3 个 不同的位置获取标定物的图像,计算出摄像机所有的内外参 数。由于它比传统定标技术更为灵活,又可以得到不错的定 标精度,所以被 OpenCV 所采纳。 在这个模型的定标过程中将用到的三个坐标系:图像坐 标系,摄像机坐标系和世界坐标系。通过坐标系之间的变换 可以通过下面的公式把图像坐标系的点和世界坐标系
2.1 图像获取
多,主要取决于应用的场合和目的,还要考虑视点差异、光 照条件、摄像机性能以及景物特点等因素的影响,以利于立 体计算。
·48·
计算机与信息技术
⎛ ⎜ f ⎜k 1 = ⎜0 Zc ⎜ ⎜0 ⎜ ⎜ ⎝ − f cot θ k f l sin θ 0
开发与应用
⎞ ⎟⎛ X ⎞ 0⎟⎜ c ⎟ Y 1 0⎟⎜ c ⎟ = AP ⎟ ⎜ Zc ⎟ Zc c 0⎟⎜ ⎟ 1 ⎟ ⎟⎝ ⎠ ⎠
结束与展望
三维重建视觉作为计算机视觉中的一个重要分支,一直
是计算机视觉研究的重点和热点之一。它直接模拟了人类视 觉处理景物的方式,可以在多种条件下灵活地测量景物的立 体信息。对它的研究,无论是在视觉生理的角度还是在工程 应用的角度都具有十分重要的意义。三维重建视觉技术在由 物体的二维图像获得物体的深度信息上具有很大的优越性。 本文利用OpenCV开发的三维重建的系统具有计算简单, 结果精确,运行效率高,可以跨多平台等优点。系统可以有 效的应用于各种可使用计算机视觉的应用中。 本试验系统适宜于测量范围不太大、遮挡较少的空间物 体的三维测量,对于遮挡较严重的情况,我们需要增加摄像 机的数目,从更多方向对物体进行摄像,通过在多个方向上 运用双目立体视觉原理进行三维重建。
2.6 后处理[6]
后处理包括深度插值、误差校正和精度改善。立体视觉 的最终目的是恢复景物可视表面的完整信息,目前,无论哪 种匹配方法都不可能恢复出所有图像点的视差,因此对于一 个完整的立体视觉系统,必须进行最终的表面内插重建。 图1 提取角点并显示的效果图(棋盘取自OpenCV) OpenCV中有Sobel,Laplace,Canny等几种用于边缘检测的 算子。 但一般使用坎尼(Canny)算子也就是cvCanny()函数做边 缘检测和特征提取(如图2)。
开发与应用
计算机与信息技术
·49·
影坐标。P、C1和C2组成的三角平面称为极平面π。π和两个 摄像机成像平面的交线l1和l2称为极线,一般称l1为点P2对应的 极线,l2为点P1对应的极线,l1和l2互为对应极线。
相关文档
最新文档