kinect和matlab,Kinect桥接Matlab代码简介Kinect Bridge With Matlab | 学步园

Kinect桥接Matlab代码简介KinectBridge With Matlab

驱动版本:Kinect for Windows SDK v1.7

项目名称:KinectBridgeWithMATLABBasics-D2D

环境配置

同样在文件夹下有一个“KinectBridgeWithMATLABBasics-D2D.doc”文档告诉我们如何进行环境配置。有二种设置环境变量的方法,我这里选择第二种做演示。

开始--->右键我的电脑--->属性--->高级-->环境变量-->新建一个“系统变量”-->增加个一MATLAB_DIR的环境变量,存放matlab安装地址。这个地址下,可以看到extern文件夹,否则是错误的。

1364453028_1991.png

设置完毕后,注销(或者重启)后才能生效。

由于我的电脑是64bit的,直接进行编译后出现错误提示:

1>  LINK :fatal error LNK1181: 无法打开输入文件“libmx.lib”

我们需要把解决方案平台,改成x64才行。

1364453049_1899.png

除了这样,我们(x64电脑的)还可以从别人x32电脑拷贝matlab下的extern文件夹进行配置即可。如下图,我把从x32电脑上拷贝的文件夹改成extern32,然后重新配置下环境,编译成功!【不建议这样做,下面发现会运行失败】

1364453067_9410.png

发现丢失libmx.dll,复制到路径下(x32和x64不一样的,请根据情况复制过来,后来发现都可以运行,不用在意)运行,发现运行失败,具体则是m_matlabEngine = engOpen(NULL);失败,经过百度,发现解决方法http://zhidao.baidu.com/question/148040156.html,需要先进行matlab组件注册才可以,注册方法如图(其实就一句语句,但要在合适的地方输入):

1364453123_7541.png

注册成功后出现matlab命令行,咱们关掉它。这里我尝试了自己的x64编译x32环境再运行的话,是无法成功的打开matlab引擎的,只能使用x64才行。所以这里要正对自己的pc进行配置和运行为佳。[发现libmx.dll可以混用,不管是win32还是win64文件夹下的]

程序运行和简要解读

最终运行结果图:

1364453252_4343.png

看了下程序,和之前的OpenCV十分相似,它运行的流程也一样:使用SDK获取的图像传到Matlab的mxArray数组结构中,再调用MatlabEvalExpr(执行字符串语句)对它进行各种操作。

例子:

const char* c_erodeElementExpr = "filtered_img= imerode(img, se);";

hr = MatlabEvalExpr(c_erodeElementExpr);

也就是使用了matlab的混合编程,只是使用matlab中的函数或者是方法,但主要上层编码工作还是要需要C++完成。如果您已经有很好的matlab

还有想要说的是,这个仅仅是新的例子,如果会混合编程,一年多前就可以写出相似或者更好的例子了。

数据存放到matlab的mxArray结构可以看函数:

HRESULTMatlabFrameHelper::GetColorData(mxArray* pImage) const

HRESULTMatlabFrameHelper::GetDepthData(mxArray* pImage) const

如果以前写过matlab混合编程,一定对这些函数(mx开头的函数)不陌生。

由于不使用Matlab进行详细研究,就不深入解读了。如果您没有运行成功欢迎留言。欢迎关注我的微博箫鸣琴奏_CPP程序侠。

matlab引擎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值