IMMComposer

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

IMMComposer是一个基于结点的通用可视化编程软件。主要内容包含一套基于结点的可视化编程模型界面友好的交互式创作环境可视化交互子系统以及插件系统。目前功能模块包含:图像、视频、声音、数学。图像、视频部分基于OpenCV实现,声音部分基于Bass库实现,数学部分基于Lua的math包。

GitHub上项目地址https://github.com/dizuo/QVP_Kernal

 

图像模块

 

视频模块

youku演示视频

http://v.youku.com/v_show/id_XNTY4MDE4MzE2.html BTW:youku上的广告有点麻烦!

 

数学模块

基于Lua实现了一个通用的二元计算控件(BinaryComputer)。下图中BinaryComputer的第二个输入参数Script为Lua脚本,它定义了该二元计算器的计算功能。通过编写不同的lua脚本,可以实现各种二元计算操作。

图中的lua脚本代码如下:

functionbinary(input1, input2)
      return input1 * input2 + math.sqrt(10000/2) – 200
end

上述代码中math是Lua自带的数学运算包。除开方函数之外,math函数包还提供了各种常见三角函数,开方,随机数,幂次,对数,运算,取模,绝对值等数值运算函数。

BinaryComputer是一个通用型二元计算器,它兼容一元计算器(将input2置为0即可),更高元计算器可以通过二元计算器组合得到。三元运算器可以通过两个BinaryComputer组合,四元运算器可以通过三个BinaryComputer组合得到,依次类推N元计算器可以通过N-1个BinaryComputer组合得到。由此可见本文的BinaryComputer足以应对各种数值计算操作。

 

声音模块

 

互动游戏设计

Face_Detection输出人脸的位置信息,其他控件使用该信息可以实现一些互动效果。图为人脸识别互动游戏,左边窗体显示人脸识别图像,人脸用红色圆圈标记,右边窗体显示2D游戏场景。游戏场景中,海底的鱼雷左右运动随机向水面发射炸弹,用户通过人脸控制游戏中的小船左右运动躲避炸弹,如果小船遇到炸弹则游戏结束。控件场景中,CvFullWindow是图像窗口代理控件,它与CvWindow不同之处是它所管理的OpenCV窗体大小可以任意改变,而且始终保持图像充满整个窗体。StringConsumer控件用来显示图像中的人脸坐标数据,首先对输入的字符串进行解码操作然后显示。GameConsumer为2D游戏主窗口的代理控件,它首先将图像中人脸的X坐标变换到游戏的窗口坐标系中,然后将变换后的X坐标赋给游戏场景中的小船,从而实现通过人脸控制二维场景中的小船运动。

 

系统改进设想

1,目前系统的界面以及可视化交互系统是基于Qt的graphics-view框架开发,将来可以将界面和核心分离,界面在web上基于js开发,核心放到服务器上。二者通过HTTP通信。

可视化交互系统,使用JS的矢量图库:http://raphaeljs.com/

2,插件系统的改进

目前插件系统存在一个问题,插件DLL中创建的控件对象在系统主框架中删除。控件的创建和删除都应该在DLL中进行。

IMMComposer更加适合触屏下创作啊。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值