调用opencv来显示深度图像,显示的内容是由matlab得到的mat文件,mat数据格式是matlab的数据存储的标准格式,此mat文件中的数据意思是的指实际场景中的点与摄像头的距离,因此目的就是怎么把这些距离信息转化为灰度信息,并借用opencv来显示结果。mat中数据截图如下,如果想了解此数据是怎么来的,可以在维基百科上搜索相关的3D tof camera信息。
本文档纯属本人对于学习过程的总结,综合网上的各种资料结合自己的实际操作写来,整个过程在自己电脑上验证过程没有错误,当然如有纰漏之处还请及时指出!
文章分两部分组成,一部分是工作环境的建立,主要讲到opencv2.4.4以及matlab2009a在vs2010下的配置过程;另一个部分是程序的解读,程序本身很短,但由于是本人第一次写类似的C程序,所以走了不少弯路,希望对你们有帮助。
一、vs2010以及opencv工作环境的建立(win7操作系统):
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
1.2 配置库目录、inlcude目录、连接器。
1.2.1. 配置include路径:
项目->属性->VC++目录->包含目录一栏右边的倒三角符号,点编辑,添加include路径:
F:\opencv\build\include\opencv2
F:\opencv\build\include\opencv
F:\opencv\build\include 一行写一个,每行末尾不需要分号
1.2.2 配置lib目录:
与上面配置包含目录操作过程一样,在库目录一栏添加:F:\opencv\build\x86\vc10\lib
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
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这张图片。
至此,编译环境已经建立!
显示代码在下一文章中,放不下了!
文章评论(0条评论)
登录后参与讨论