40 12
发新话题
打印

[研究] Flash与摄像头的交互(运动检测、边缘检测、色彩跟踪等)

Flash与摄像头的交互(运动检测、边缘检测、色彩跟踪等)

最近休假,好不容易从繁重的工作中暂时脱身出来。
前段时间一直在考虑视频游戏的时间,今天总算有空了,由于休假在家,脑袋似乎也比平常转得快了,写这个动态视频捕捉,居然只用了一个下午,看来,我早该朝这方面努力了。
现在这个Demo,用我这个临时找来的摄像头(cybass的,找驱动居然花了一上午时间)检测效果还是很好的,用头、肩等部位顶,撞,都能准确地识别。用细小的铅笔,灵敏度就差点了。
大家有摄像头的,都帮我测测,看在不同环境下,不同的机器反应如何。

[ 本帖最后由 chenlangeer 于 2007-7-22 17:30 编辑 ]

附件

demo1.swf (13.08 KB)

2007-7-19 01:22, 下载次数: 1685

demo

demo1_flv.swf (1.75 MB)

2007-7-19 01:22, 下载次数: 1631

我录的视频

TOP

下来看一下

TOP

引用:
原帖由 终极讨厌 于 2007-7-19 02:26 发表

只能参观,没有思路没有源文件。对大家似乎没什么帮助啊
94   楼主共享一下啊
FLASH Everyday

TOP

视频边缘检测Demo

使用视频边缘检测,能完成一些更精确的控制。

附件

demo2.swf (12.18 KB)

2007-7-20 12:27, 下载次数: 6652

视频边缘检测

demo2_flv.swf (2.67 MB)

2007-7-20 12:27, 下载次数: 7896

视频边缘检测录像

TOP

色彩跟踪Demo

色彩跟踪是一个比较复杂的课题,因为色彩不断的在起着微小的变化,位置不停的在移动,如果再加上背景色的干扰,要准确的跟踪某个色块的运动,非常的耗时间不说,成功率也很低。
所以,我在这个Demo中,做了两个条件限制,让as2能跑起来。
一是限定了跟综色为蓝色,二是背景色中不能有大块的蓝色(允许有蓝色杂点),在实际应用中,这两点要求还是很容易满足的。因为相对来讲,对三原色的跟踪,要比跟踪复杂色彩要简单,效率也更高。
初始化过程:
测试的时候,先打开摄像头,能看到视频后,点“初始化鼠标”按钮,屏幕上如果有蓝色的话,会提示你先移除蓝色物体。把所有蓝色物体拿开后,会提示你将一个蓝色物体放置到中心的白色区域内,进行校验,一旦色彩校验成功,鼠标初始化就完成了。
在我的录像中,用的是一只常见的水笔,蓝色的笔头,至于MouseUp和MouseDown,我是通过拿手遮住笔头来实现的。
深入一步想,可以设计出一款特殊的手套,让每个手指头做为一个感应点,通过不同的手势,来和flash进行交互,非常cool的感觉哈。

有了运动检测,边缘检测和色彩跟踪,已经能做一些比较有意思的flash游戏和简单的应用了,但要做复杂应用,还需要努力研究图像识别技术,flash的执行效率放到一边先不说,图像识别这个东西真的好难,更何况是动态图像的识别。

我记得半年前有一个朋友跟我聊天,说他们公司做的flash,能准确的跟综到人的鼻子,眼睛等。现在再想想,真的很佩服他们的开发人员。

[ 本帖最后由 chenlangeer 于 2007-7-22 01:45 编辑 ]

附件

demo3.swf (16.94 KB)

2007-7-22 01:45, 下载次数: 806

视频色彩跟踪

demo3_flv.swf (1.92 MB)

2007-7-22 01:45, 下载次数: 1098

视频色彩跟踪演示录像

TOP

静态背景消除Demo

大家都知道蓝屏技术,最基本的视频特技。严格的讲,任何静态的背景都是能消除的,这个Demo演示了这种有趣的效果。
请按Demo中的Step一步步来操作,否则会显得很乱。

[ 本帖最后由 chenlangeer 于 2007-7-22 17:24 编辑 ]

附件

demo4.swf (14.62 KB)

2007-7-22 17:24, 下载次数: 808

静态背景消除

demo4_flv.swf (635.48 KB)

2007-7-22 17:24, 下载次数: 1023

静态背景消除演示录像

TOP

占位。

TOP

顶一个先
记得前段时间有个人要做这样的视频游戏
不过他游戏要求要检测到手和头的位置
这样应该要涉及到图形识别
不知道FLASH的执行效率能否达到要求
期待着chenlangeer的大作...
努力学习 ING!!!

TOP

发个防制品源码!!!
复制内容到剪贴板
代码:
var cam:Camera;
for (var d:Number = 0; d<Camera.names.length; d++) {
attachMovie("txt_mc", "txt_mc"+d, d, {_x:0, _y:50+d*56});
this["txt_mc"+d]._txt.text = Camera.names[d];
this["txt_mc"+d].id = d;
this["txt_mc"+d].onRelease = function() {
  cam = Camera.get(this.id);
  start_func();
};
}
function start_func() {
cam.setMode(cam.width, cam.height, 25);
video.attachVideo(cam);
var depth_num:Number = 0;
var list_array:Array = new Array();
_bmp = new flash.geom.Matrix();
now = new flash.display.BitmapData(video._width, video._height);
out = new flash.display.BitmapData(video._width, video._height);
this.createEmptyMovieClip("out_mc", 50);
out_mc.attachBitmap(out, 1);
out_mc._x = 100;
out_mc._y = 50;
this.onEnterFrame = function() {
  now.draw(video, _bmp);
  done = now.clone();
  done.draw(before, _bmp, null, "difference");
  done.threshold(done, done.rectangle, done.rectangle.topLeft, ">", 0xff1112c8, 0xffff00f0, 0xffffff, false);
  list_array.push(done.clone());
  if (list_array.length>5) {
   list_array.shift().dispose();
  }
  out.fillRect(out.rectangle, 0);
  before = now.clone();
  for (var d:Number = 0; d<list_array.length; d++) {
   out.threshold(list_array[d], out.rectangle, out.rectangle.topLeft, "==", 0xffff00f0, -65536, 0xffffff, false);
  }
};
}
stop();
[ 本帖最后由 终极讨厌 于 2007-7-22 09:01 编辑 ]

附件

视频运动检测.fla (69.5 KB)

2007-7-22 09:01, 下载次数: 382

视频运动检测.swf (3.75 KB)

2007-7-22 09:01, 下载次数: 262

示例.jpg (35.13 KB)

2007-7-22 08:00

示例.jpg

TOP

强顶一个!
AS3,flex等等...技术博客: www.RiaHome.cn
rss阅读地址: http://feed.feedsky.com/youngboy

TOP

看来你速度慢快的

我也想休假!~~~~我也想做点好东西出来啊~~~~~

忽然发现,我2004年就注册闪吧了,看来我比你早,灭活活~~~

[ 本帖最后由 element_chen 于 2007-7-20 20:12 编辑 ]

TOP

强烈支持,哈哈

TOP

酷毙了, 能把原代码共享一下吗?

TOP

动画

附件

中间漂浮.swf (77.42 KB)

2007-7-21 18:42, 下载次数: 236

TOP

回复 #12 element_chen 的帖子

我注册时间是 2002-3-5
基本上找不到比我更老的啦

TOP

呵呵~~强人嘛

TOP

学习~~~~

TOP

原来FLASH有这么多的用途!

TOP

6楼添加了静态背景消除,及蓝屏技术。

TOP

2002-3-5---->我还不知道AS是什么?
寻觅终生伴侣!

my blog

TOP

强悍的

TOP

2002-3-5。。。。。那时候我还在抵抗高考的压迫。。。
天行健,君子以自强不息

TOP

好老的贴。反正没看过,当新贴看吧。

TOP

??原来是2007
把7看成2 了, 唉, 老眼昏花了。气温太高造成的吧?

CG好强啊。加油啊。

TOP

没有源码,不能学习。

TOP

好帖

TOP

不错~~关注一下,不过不愿意与人分享!不是个好习惯~~还是终极讨厌比较帅

TOP

a3810225小弟弟,我已经过了寻求虚荣心的年纪,发demo的目的只是为了寻求合作机会。

TOP

兄弟好久没来发帖了,不知这个是不是找到了合作伙伴呀,个人觉得很有前途呀。

TOP