MAC OX 10.8 环境下运行TLD算法(MATLAB版)

原创 2013年11月10日 23:43:07

关于TLD算法,就不具体阐述了,谷歌百度搜索一下,介绍的文章相当多。


概述:

一、安装和编译高性能OpenCV 2.4.6

二、安装xcode和command line tool

三、MATLAB安装

四、TLD算法修改和配置


详细介绍:

一、安装和编译高性能OpenCV 2.4.6

(高性能编译部分引用:http://tianchunbinghe.blog.163.com/blog/static/7001201151592834161/)

1)先安装好brew,这个安装软件利器。

2)利用brew安装cmake,libpng,libjpeg,libtiff,pkgconfig;

3) 安装 Intel Threading Building Blocks

Intel Threading Building Blocks (TBB) 类似于以前的 OpenMP 和苹果系统自带的 GCD,用于帮助用户创建隐式的并行计算程序,底层依赖于操作系统的多线程库。TBB 最初是 Intel 的商业软件,但自从 3.0 以后就开源了,同时 Intel 仍然销售带有技术支持的商业版本。在其下载站点上下载了最新的 Commercial Aligned Release,目前的版本是4.2 。下载后把它移动到了 /opt/intel 目录下并创建了一个软链接以便日后版本升级时可以随意切换到新版本:

$ ls -l
total 8
lrwxr-xr-x   1 root    wheel   17 11  6 09:40 tbb -> tbb42_20131003oss
drwxr-xr-x  12 paopao  staff  408 11  6 09:33 tbb42_20131003oss

然后需要做两件事,首先修改 /opt/intel/tbb/bin/tbbvars.sh 脚本文件的第一个有效行,将正确的安装位置设置到环境变量上:

TBBROOT={SUBSTITUTE_INSTALL_DIR_HERE}

修改为:

SUBSTITUTE_INSTALL_DIR_HERE="/opt/intel/tbb"
TBBROOT="/opt/intel/tbb"


这样改好像有点问题,但是OpenCV只识别SUBSTITUTE_INSTALL_DIR_HERE,对TBBROOT不关注;(也可能我没有注意到,时间比较紧,没有细究这里)。


然后在 ~/.bash_profile 里添加一行以确保 TBB 库可被以后编译出来的 OpenCV 库成功加载:

source /opt/intel/tbb/bin/tbbvars.sh

操作完成以后重新打开一个终端窗口,显示 DYLD_LIBRARY_PATH 环境变量的值,里面应该包含 TBB 的路径才对:

$ echo $DYLD_LIBRARY_PATH
/opt/intel/tbb/lib

4)下载并编译高性能OpenCV;

直接官网下载最新版本程序包,解压并编译安装;这里需要注意的地方是cmake编译选项(注意最后还有一个点,表示cmake要编译的CMakefiles.txt存在地方);

cmake -G "Unix Makefiles" -D BUILD_NEW_PYTHON_SUPPORT=OFF -D CMAKE_OSX_ARCHITECTURES="x86_64" -D WITH_TBB=ON -D TBB_INCLUDE_DIR=/opt/intel/tbb/include .


cmake之后的日志可以看到这个字样表示成功。

--     Use TBB:                    YES


二、安装xcode和command line tool;

这部分比较简单,直接app store安装和下载。


三、MATLAB安装

这部分网上相关教程也比较多,也相对比较简单,下载直接安装即可。(个人安装最新的matlab 2013a)

这里要重点说明的一点:matlab C编译器 xcode的设置,主要是安装optsPatch_MACOSX8.patch补丁。

1)到官方网站 http://www.mathworks.cn/support/solutions/en/data/1-FR6LXJ/ 下载最新的补丁(些此文时是optsPatch_MACOSX8.patch)
2)进入matlab根目录

		>>cd(matlabroot)
		>>!unzip -o ~/Downloads/optsPatch_MACOSX8.patch

3)命令行下输入:mex -setup ,选择Template Options file for building gcc MEX-files 即可。
至此就完成了matlab C编译器 xcode的设置


四、TLD算法修改和配置

1)配置TLD算法matlab路径:(选择Set Path-> Add with Subfolders)



2) 安装如下内容修改compile.m文件

if ismac
    disp('--->Mac');
    
    include = ' -I/usr/local/include/opencv -I/usr/local/include/'; 
    libpath = '/usr/local/lib/'; 


并注释掉if isUnix的判断部分;这部分会跟ismac冲突。


3)修改源文件:

1. 头文件:

//在TLD中,lkcpp文件里面的
#include <cv.h>
#include <highgui.h>
修改为:
#include <opencv2/opencv.hpp>
#include <opencv2/legacy/legacy.hpp>

//在TLD中,lk和fern的cpp文件里面注释掉:
//#ifdef _CHAR16T
//#define CHAR16_T
//#endif

2.修改lk.cpp里面的函数参数:

cvCalcOpticalFlowPyrLK( IMG[J], IMG[I],..., Level, 0 , 0,...);
修改为:
cvCalcOpticalFlowPyrLK( IMG[J], IMG[I],..., Level,
status , 0,...);

(省略号表示省略了部分参数)

3.修改initcamera.m文件

source.vid = videoinput('winvideo', 1, 'YUY2_640x480');

修改为:

source.vid = videoinput('macvideo',[1]);


######################################

摄像头配置

1.获取matlab安装的硬件信息:

>> imaqhwinfo

ans = 

    InstalledAdaptors: {'dcam'  'gige'  'macvideo'}
        MATLABVersion: '8.1 (R2013a)'
          ToolboxName: 'Image Acquisition Toolbox'
       ToolboxVersion: '4.5 (R2013a)'

>> imaqhwinfo('macvideo')

ans = 

       AdaptorDllName: [1x85 char]
    AdaptorDllVersion: '4.5 (R2013a)'
          AdaptorName: 'macvideo'
            DeviceIDs: {[1]}
           DeviceInfo: [1x1 struct]

>> help videoinput

2.如果获取视频输入的全部信息可以matlab输入help videoinput;

######################################


4.修改img_blur.m文件:

h = FSPECIAL('gaussian',csize,sigma);

修改为

h = fspecial('gaussian',csize,sigma);



5.依次运行compile.m,initcamera.m,run_TLD.m;

就可以运行TLD程序了,代码默认是一个摩托车手的视频跟踪视频。


6.摄像头采集视频并进行跟踪,


修改run_TLD.m文件:

opt.source   = struct('camera',0,'input','_input/','bb0',[])。

修改为

opt.source   = struct('camera',1,'input','_input/','bb0',[])。
 
0改成1,就能成功从摄像头运行TLD程序了。


至此,mac os x环境下运行TLD算法流程基本完成。









相关文章推荐

MATLAB中控制输出格式中小数点后的位数

原文出自:http://www.ilovematlab.cn/thread-67735-1-1.html 声明:本文完全出自Matlab中文论坛jiutongrouwanzi的贴文,在此对其对本人的...

matlab参数传递及全局变量

在未加特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的函数内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global。 Matlab的全...

运行matlab版的TLD算法

第一步: 首先电脑要安装opencv和VS,我个人用的VS版本是VS2010,opencv版本是2.4.8。具体的安装步骤在这里不是重点,不累赘。 第二步:      将matlab版的TLD整...

轻松运行Mac OS X 10.8在PC零售山地狮与VMware图片 - 简单的步骤

VMware和VirtualBox的的Hackintosh容易使我们能够作为独立的虚拟机,而不是破坏现有的物理OS。苹果公司发布了其最终零售版本的Mac OS X 10.8山地狮后,此VMware最新...

算法(第四版) --代码运行环境的搭建(Mac版本)

一. 环境搭建在学习算法(第四版)时。我使用eclipse,尝试写BinarySearch.java的代码。后遇到代码无法编译,或者解决了编译问题又无法运行。会很打击学习的积极性。后来发现,官网有一套...

MAC OX 配置JDK环境变量

大家在windows里面配置JDK环境变量很容易,但是如果要在mac里面配置JDK环境变量和windows里面有所不同,具体如下:第一:mac OS里面自带jdk,不过是1.6的版本,现在很多人使用的...
  • lhb_11
  • lhb_11
  • 2017年04月19日 15:17
  • 265

Mac ox 下配置 Android NDK 开发环境

1.阅读下面之前,请确保你android sdk的开发环境已经搭建好,ADT也最好是目前最新的.  2.到http://developer.android.com/tools/sdk/ndk/i...

MAC OX 配置JDK环境变量

此文章主要详细描述如何在mac OS的系统里面配置jdk环境变量

mac os下搭建LWJGL开发环境(mac os 10.8)

1.检查系统jdk安装情况 1.怎样设置mac中的默认java版本呢 ?  先看一下mac中,java链接到了哪里: 进入到相应的目录:cd /usr/bin  查看java链接到了...

运行TLD的Matlab源码的相关问题

我电脑的程序配置:WIN7+VS2010+MATLAB R2010a+OpenCV2.2 OpenCV2.2的下载地址(这里含有各种版本的OpenCV)http://www.opencv.org.cn...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MAC OX 10.8 环境下运行TLD算法(MATLAB版)
举报原因:
原因补充:

(最多只允许输入30个字)