原创 [博客大赛]通过opencv来显示3D摄像头采集到的深度图像(一)

2013-8-27 14:19 6783 21 21 分类: FPGA/CPLD 文集: 3D图像
    调用opencv来显示深度图像,显示的内容是由matlab得到的mat文件,mat数据格式是matlab的数据存储的标准格式,此mat文件中的数据意思是的指实际场景中的点与摄像头的距离,因此目的就是怎么把这些距离信息转化为灰度信息,并借用opencv来显示结果。mat中数据截图如下,如果想了解此数据是怎么来的,可以在维基百科上搜索相关的3D tof camera信息。
20130826191724147.jpg
     本文档纯属本人对于学习过程的总结,综合网上的各种资料结合自己的实际操作写来,整个过程在自己电脑上验证过程没有错误,当然如有纰漏之处还请及时指出!
    文章分两部分组成,一部分是工作环境的建立,主要讲到opencv2.4.4以及matlab2009a在vs2010下的配置过程;另一个部分是程序的解读,程序本身很短,但由于是本人第一次写类似的C程序,所以走了不少弯路,希望对你们有帮助。

 

一、vs2010以及opencv工作环境的建立(win7操作系统):

        先下载VS2010,这里我用的Visual Studio 2010简体中文旗舰版,此版本已经内置KEY,安装完就自动激活,无需手动激活。下载下来的是个.iso光盘映像文件,用Daemon Tools虚拟光驱安装即可,给出vs2010下载地址:http://club.topsage.com/thread-2187392-1-1.html 。
    opencv用的是2.4.4版本,可以去opencv官网下载,也可以去一些论坛下载,把下载下来的OpenCV-2.4.4.exe文件安装,示范的是安装到 F 盘。matlab用的是MATLAB R2009a版本。

1.配置opencv

    1.1. 添加环境变量:(添加完后需要重启电脑才能生效)

       计算机->属性->高级系统设置->环境变量。(以下路径都需要根据自己电脑上软件的安装路径做相应的修改)
  • 在path中添加F:\opencv\build\x86\vc10\bin,添加dll文件;
  • 添加环境变量“OPENCV”,内容:F:\opencv\build
20130826191854227.jpg
20130826191918553.jpg

   1.2 配置库目录、inlcude目录、连接器。

    1.2.1. 配置include路径:
    项目->属性->VC++目录->包含目录一栏右边的倒三角符号,点编辑,添加include路径:
    F:\opencv\build\include\opencv2
    F:\opencv\build\include\opencv
    F:\opencv\build\include                         一行写一个,每行末尾不需要分号
 
20130826192151394.jpg
20130826192214255.jpg
    1.2.2 配置lib目录:
    与上面配置包含目录操作过程一样,在库目录一栏添加:F:\opencv\build\x86\vc10\lib
20130826192235728.jpg
     1.2.3 配置链接器:
    项目->属性->链接器->输入->附加依赖项一栏右边的倒三角符号,编辑,添加依赖项文件:
    opencv_calib3d244d.lib
    opencv_contrib244d.lib
    opencv_core244d.lib
    opencv_features2d244d.lib
    opencv_flann244d.lib
    opencv_gpu244d.lib
    opencv_highgui244d.lib
    opencv_imgproc244d.lib
    opencv_legacy244d.lib
    opencv_ml244d.lib
    opencv_objdetect244d.lib
    opencv_ts244d.lib
    opencv_video244d.lib
20130826192258258.jpg

2. Matlab的配置:

    matlab的配置与opencv类似,不再复述,这里只给出路径:(需要修改相应的盘符)系统环境变量PATH中添加:G:\matlab2009a\bin\win32,
    lib路径:G:\matlab2009a\extern\lib\win32\microsoft,include路径:G:\matlab2009a\extern\include
   链接器依赖项文件:libeng.lib、libmat.lib、libmex.lib、libmx.lib
    测试代码如下:
# include     "StdAfx.h"
# include     "highgui.h"
int   main()
{   
      const     char * imagename =    "D:/demo.jpg" ;   //随便放一张jpg图放到D盘,名字修改成相符的即可
      cv : : Mat img = cv : : imread(imagename);
      if (img.empty()) return    - 1 ;   //是否加载图像成功       if ( ! img.data) return    - 1 ;
     cv : : namedWindow( "image" , CV_WINDOW_AUTOSIZE);
     cv : : imshow( "image" , img);
     cv : : waitKey();
      return    0 ;
}
    正确执行的结果是显示demo.jpg这张图片。
    至此,编译环境已经建立!

显示代码在下一文章中,放不下了!
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
21
关闭 站长推荐上一条 /3 下一条