Movid 库分析

103 篇文章 0 订阅
6 篇文章 0 订阅

Movid is the acronym for Modular Open Vision Interaction Daemon. It's a crossplatform and Open Source tracker, designed to be as modular as possible.

 

code download :http://github.com/tito/Movid

 

Movid思路分析

      Movid高度模块化,主要功能模块在tito-Movid-3d5b78b/src文件夹下面。模块moModule负责处理,模块间共享端口数据moDataStream。moModule体系通过moModule.h中的宏定义实现自动化绑定。

      模块间端口数据共享通过指针浅拷贝,共享内存, 因为movid只是可视化opencv,输入数据来源于camera或者video,对于二者opencv自动会管理每帧的管理,所以movid中moDataStream不需要管理端口数据的生命周期。

      moModule体系,包括在moDataStream中使用了多线程,偶对MT还只是理解皮毛,惭愧~

      moProperty中定义moModule的其他一些属性,比如canny算子需要的两个int型参数,定义如下:

 

 

      moPipeline里面管里创建整个可视化场景,特别是moPipeline::parse函数,通过解析字符串命令创建场景。

      Movid的界面在web上实现,movid.cpp中负责网络通信部分。

      最终用户在网页上,以连线的方式产生了一个场景图,从而生成一个模块间的调用序列,将这些字符串传给服务器,服务器端Movid解析产生结果,传给客户端,显示最终结果图片。所以这个角度说,Movid并不是所见即所得的编程,gui只是一种表示,跟gui层跟数据层是分离的。

      Movid的执行机制有点神奇,一直没有看到对所有模块进行拓扑排序的函数,难道通过MT就这可够了???研究ing~

      Movid演示例子,顺序创建结点,按照结点ID号遍历所有节点,调用poll / update函数。。。

demo screenshot:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值