前段时间一直在考虑 视频游戏的时间,今天总算有空了,由于休假在家,脑袋似乎也比平常转得快了,写这个动态视频捕捉,居然只用了一个下午,看来,我早该朝这方面努力了。
现在这个Demo,用我这个临时找来的摄像头(cybass的,找驱动居然花了一上午时间)检测效果还是很好的,用头、肩等部位顶,撞,都能准确地识别。用细小的铅笔,灵敏度就差点了。
大家有摄像头的,都帮我测测,看在不同环境下,不同的机器反应如何。
视频边缘检测Demo
使用视频边缘检测,能完成一些更精确的控制。
色彩跟踪Demo
色彩跟踪是一个比较复杂的课题,因为色彩不断的在起着微小的变化,位置不停的在移动,如果再加上背景色的干扰,要准确的跟踪某个色块的运动,非常的耗时间不说,成功率也很低。
所以,我在这个Demo中,做了两个条件限制,让as2能跑起来。
一是限定了跟综色为蓝色,二是背景色中不能有大块的蓝色(允许有蓝色杂点),在实际应用中,这两点要求还是很容易满足的。因为相对来讲,对三原色的跟踪,要比跟踪复杂色彩要简单,效率也更高。
初始化过程:
测试的时候,先打开摄像头,能看到视频后,点“初始化鼠标”按钮,屏幕上如果有蓝色的话,会提示你先移除蓝色物体。把所有蓝色物体拿开后,会提示你将一个蓝色物体放置到中心的白色区域内,进行校验,一旦色彩校验成功,鼠标初始化就完成了。
在我的录像中,用的是一只常见的水笔,蓝色的笔头,至于MouseUp和MouseDown,我是通过拿手遮住笔头来实现的。
深入一步想,可以设计出一款特殊的手套,让每个手指头做为一个感应点,通过不同的手势,来和flash进行交互,非常cool的感觉哈。
有了运动检测,边缘检测和色彩跟踪,已经能做一些比较有意思的flash游戏和简单的应用了,但要做复杂应用,还需要努力研究图像识别技术,flash的执行效率放到一边先不说,图像识别这个东西真的好难,更何况是动态图像的识别。
我记得半年前有一个朋友跟我聊天,说他们公司做的flash,能准确的跟综到人的鼻子,眼睛等。现在再想想,真的很佩服他们的开发人员。
静态背景消除Demo
大家都知道蓝屏技术,最基本的视频特技。严格的讲,任何静态的背景都是能消除的,这个Demo演示了这种有趣的效果。
请按Demo中的Step一步步来操作,否则会显得很乱。
demo4.swf
demo4_flv.swf
摘自:http://space.flash8.net/space/?14107/action_viewspace_itemid_357462.html