这里我们要实现的功能是利用Guidance SDK中的API,通过USB从Guidance中读取图像数据,使用camshift完成一个视觉跟踪的应用。该教程支持Windows和Ubuntu系统。
demo文件夹中已经有了一个完整的视觉跟踪的工程,用户可以直接编译运行这个工程,以便有一个整体的认识。然后依照下面的指示,从零开始建立一个视觉跟踪的工程。
你可以从GitHub下载到最新的Guidance SDK并解压。
内容包括:
如下图所示,在SDK/demo目录下创建自己的工程,这里在VS2010中创建了一个空工程,工程名为guidanceSDK_test。
向工程中添加空的源文件main.cpp。
首先将要使用到的线程操作保护的源文件DJI_utility.cpp与头文件DJI_utility.h复制到与main.cpp同目录下,并在项目中添加。DJI_utility.cpp与DJI_utility.h在demo及examples中均可找到。
需要配置的有DJI_guidance.h、DJI_guidance.lib与OpenCV头文件及库文件的路径。 DJI_guidance.h头文件位于SDK/include中;DJI_guidance.lib位于SDK/lib中,在VS2010中需要进行相应的配置将它们的路径包含到工程中。由于本教程运行于Release Win32模式下,最后编译输出x86平台的release文件,对应的DJI_guidance.lib文件具体路径为SDK/lib/2010/x86。
为简化配置的繁琐,可直接复制SDK/demo/sdk_tracking_camshift目录下的 “use_opencv_release_vs2010_x86.props” “use_Guidance_vs2010_x86.props” 文件到解决方案目录下并添加到工程。
请注意:这里默认用户已按照环境配置中所述的方法,安装了Opencv2411,并正确添加了环境变量OPENCVROOT。这一环境变量在OpenCV的配置文件中被用到。
当工程路径变化时,用户也可以通过修改配置文件来适应;具体的可以查看相应的配置文件;这里给出一个Guidance相关文件配置的例子,OpenCV的配置类似。
在SDK根目录下有lib文件夹,由于本教程中默认是VS2010建立的工程,并且运行Release Win32的程序,因此进入lib/2010/x86,将相应的DJI_guidance.dll文件复制出来。
|
|
|
|
则会返回给用户程序使用方法;
|
本教程给出的是基于camshift算法与深度图的视觉跟踪demo,当程序开始运行用户需要首先使用鼠标在Guidance Tracking Demo窗口 中框出需要跟踪的目标,接着移动目标可以观察到跟踪效果;
|
|
由于本教程默认guidance SDK运行所需的工作环境已经按照环境配置中配置成功,因此这里只需Build编译完工程,启动并通过USB线连接Guidance,点击Start Debugging即可运行程序。
~/Desktop/GuidanceSDK
目录。~/Desktop/SDK/demo/guidance_track
,并添加DJI_utility.cpp 与 DJI_utility.h;另外main.cpp中的代码也与上一节Windows的介绍中相同,在此不赘述,直接拷贝过来。
|
由于本教程使用的是32位的Ubuntu14.04系统,因此去SDK根目录下的so/x86中,将libDJI_guidance.so文件复制到usr\local\lib 文件夹下即可,不同位数系统请复制对应的.so文件。请注意,复制时需要用到sudo
权限。
|
接着编写Makefile文件。确保OpenCV已经正确安装。
|
Makefile代码如下:
|
|
q
键退出程序。