快速业务通道

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编码更加高效。 关键词:课件
  • 1
  • 2
  • 3
  • 下一页

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号