Kinect1代+KinectSDK1.8+OpenNI2.2+NITE2.0+Opencv2.4.10环境配置(2)

来源:互联网 发布:植物大战僵尸2 知乎 编辑:程序博客网 时间:2024/05/29 08:24

昨天安装好了NITE2.0和OpenNI2.2并成功运行示例程序之后以为已经彻底完工,今天准备开始着手深度图像与彩色图像的对齐,然后一脸懵逼的发现。。嗯,图像貌似没法显示( ̄口 ̄),苦酒入喉心作痛,然后继续上网查资料,发现基本都是借用opencv实现的,那好吧,开始安装opencv,所以这篇文是紧跟上一篇的,在安装配置opencv的基础上,填坑(因为昨天只安装了NITE和OpenNI,并没有在VS里配置)。

前文链接:http://blog.csdn.net/uranus1024/article/details/72802995

正文开始:我们先配置opencv,我使用的opencv版本是2.4.10

kinectSDK1.8+NITE2.0+OpenNI2.2+OpenCv2.4.10大礼包:链接:http://pan.baidu.com/s/1nv5FDln 密码:nviz

STEP1:

下载好OPENCV2.4.10后,解压,注意记录你自己选择的解压路径,一会儿会用到,这里我直接在D盘根目录下创建了一个新文件夹用于解压


然后等待解压完成


STEP2:配置环境变量

按Windows+E组合键打开文件资源管理器,鼠标右击“此电脑”,选择属性


然后在弹出的窗口左边,点击高级系统设置


在弹出的“环境变量”窗口->系统变量下,单击新建


变量名取为PATH,变量值通过浏览目录定位到你刚才opencv所解压的路径,一直向下选中至bin,确定(注意这里无论电脑系统位数是32还是64位,都选择X86,否则后续会出问题)


单击确定,添加完后的结果应该是这样的


再下一步添加用户变量,点击用户变量下的新建,如图所示

变量名取为opencv,变量值和上步类似,定位到build文件夹即可


然后单击确定,在环境变量窗口单击确定,系统属性窗口单击应用->确定,即完成了环境变量的配置。(OpenNI2在安装的时候就会自动配置环境变量)

STEP3:打开VS,新建win32控制台程序,新建源文件。然后粘贴一段示例代码,我使用的实例代码来自http://blog.csdn.net/chenxin_130/article/details/8619909?utm_source=tuicool&utm_medium=referral

粘贴进源文件后我们会发现报错

然后我们需要右键项目名点击菜单最下方的属性进行设置

(注:STEP3的这些步骤可以参考我上一篇文章里的图解

首先进入配置属性->VC++目录->包含目录,编辑

这里需要加入4条内容,添加包含目录的步骤可以参考我上一篇文章的图解,这里只放最后添加的结果


(注:前三条包含目录为我的电脑上的解压目录,读者目录可能会与我的设置不一致,不影响结果)

设置好后单击确定,然后编辑库目录,编辑完后的结果为


接下来配置附加依赖项,依次进入链接器->输入->附加依赖项,编辑,在上方空白框中粘贴以下内容

kernel32.libuser32.libgdi32.libwinspool.libcomdlg32.libadvapi32.libshell32.libole32.liboleaut32.libuuid.libodbc32.libodbccp32.lib%(AdditionalDependencies)opencv_ml2410d.libopencv_calib3d2410d.libopencv_contrib2410d.libopencv_core2410d.libopencv_features2d2410d.libopencv_flann2410d.libopencv_gpu2410d.libopencv_highgui2410d.libopencv_imgproc2410d.libopencv_legacy2410d.libopencv_objdetect2410d.libopencv_ts2410d.libopencv_video2410d.libopencv_nonfree2410d.libopencv_ocl2410d.libopencv_photo2410d.libopencv_stitching2410d.libopencv_superres2410d.libopencv_videostab2410d.libOpenNI2.lib
注意!这里我使用的opencv版本为2.4.10,所以lib文件前末尾格式都为2410d,如果你用的是2.4.9版本的opencv,则上面的2410d全部都需要改为249d,否则编译会报错:无法打开xxxxx2410d.lib。
图为我用的2.4.10版本的opencv却添加的是249d.lib所以编译报错的结果


添加完后的结果


然后一路确定下来就好了,这个时候我们会发现代码里的报错已经没有了,但是F5编译运行可能仍然会出现错误。

比如

我在百度之后查明了原因,是因为是用debug模式编译的,MSVCP120D最后的D就代表DEBUG,如果使用release编译就不会报错,但是我不信邪啊,我就要搞出来,然后去网上下好了这个dll(上面的度盘链接里就有这两个dll),并按照网上的教程:把dll文件放进windows\system32目录下,以管理员身份运行cmd进入system32目录下运行这个dll。。。结果,告诉我无法创建关联 \("▔□▔)/\("▔□▔)/\("▔□▔)/。。。然后,我又试着把这个dll扔进了opencv\build\x86\vc12\bin目录下,结果。。结果。。结果就好了(/・ω・\),纯属意外,瞎扔结果一发入魂。


然后美滋滋的编译...


我靠什么鬼啦(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)


有着前面的经验铺垫,我立马去OpenNI2的redist目录下把OpenNI2.dll文件撸了过来砸进了刚才上面的那个OPENCV的路径,心想稳了

然后。。。我。。。


那就换个思路,扔进工程目录下肯定没问题了吧。。。结果...在运行黑框里告诉我No such files matching xxx\xxx\xxxx *.dll,然后又开启了度娘之旅,一堆回答配置错误的,很是无语(我不听,我配置的明明是对的),最终百度到一个回答说重启就好的,然后满怀希望的重启。。。再运行。。缺少OpenNI2.dll。。。(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)


然后又把OpenNI2,NITE卸载重装了。。也没用,最后终于找到了答案,要把OpenNI2下redist文件夹下的所有文件全部拷贝到工程文件目录下...心态崩了,之前我还在环境变量里在包含目录里加上了OpenNI2\redist,没用,结果最简单粗暴的办法反而最有效。然后编译运行。


运行成功!


你问我运行成功为什么没图像啊...因为我不想上镜啊,逃~

以上。


阅读全文
0 0
原创粉丝点击