Flash摄像头游戏课件设计与开发
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
ng=nc>>8&0xff; //蓝色通道 nb=nc&0xff; //计算该点亮度值 nl=Math.sqrt(nr*nr + ng*ng + nb*nb) //获取前一快照before同一点的RGB值 bc=before.getPixel(x,y); //红色通道 br=bc>>16&0xff; //绿色通道 bg=bc>>8&0xff; //蓝色通道 bb=bc&0xff; //计算该点亮度值 bl=Math.sqrt(br*br + bg*bg + bb*bb); //计算亮度值的变化 d=Math.round(Math.abs(bl-nl)); if(d>tolerance) { //该点发生了变化 } 但是这种方法存在计算效率问题。按图像大小为180*160像素,每秒30帧计算,每计算一副图片需要的计算次数为180*160*30。图像的像素越大,需要的计算次数就越多。采用隔点检测的方法可以在一定程度上缓解计算压力,即每隔n个像素检测一次,这样电脑的计算次数减少为原来的1/n。 2)改进思路 Flash8提供的图像混合模式可以解决上面遇到的效率问题。Flash8提供了11种图像混合模式。每一种混合模式可以得到不同的混合效果。Different 混合模式是基于两张图片之间的亮度差值进行计算,从而得到图片的负片效果。利用该模式,便可以得到移动像素的检测图像。 //将前一张快照before的图像绘制到当前快照now上,使用different混合模式 now.draw(before, new Matrix(), null, "difference"); 图像中黑色表示没有发生移动,其他颜色表示发生了移动。由于Flash8提供的混合模式是采用C++编码实现的,因此运行效率要比Action Script编码更加高效。 关键词:课件
|
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Flash摄像头游戏课件设计与开发的所有评论