惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
Blog — PlanetScale
Blog — PlanetScale
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
U
Unit 42
I
InfoQ
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
B
Blog RSS Feed
Vercel News
Vercel News
F
Fortinet All Blogs
Know Your Adversary
Know Your Adversary
T
Troy Hunt's Blog
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
Jina AI
Jina AI
小众软件
小众软件
T
Threatpost
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
Scott Helme
Scott Helme
B
Blog
腾讯CDC
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
S
Schneier on Security
N
News and Events Feed by Topic
Microsoft Security Blog
Microsoft Security Blog
K
Kaspersky official blog
G
Google Developers Blog
T
Tor Project blog
PCI Perspectives
PCI Perspectives
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
Latest news
Latest news
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
罗磊的独立博客

博客园 - deeplymove

摄像头游戏引擎测试程序下载 我的博客 http://blog.csdn.net/deeplymove/ 发布一个图像处理库 推荐一个文件传输工具 一种Windows下线程同步的实现方法(很久以前未发表的文章,就当是消遣吧) 源代码下载 准备把引擎开源 好久没更新了 大家给提提意见吧 bug report(感谢Yahle) 感谢竹zi给新的demo制作的背景图 新版本SDK下载 新demo的画面 基于directdraw的demo测试 基于cmecom和directdraw的游戏demo马上就要完成了 这两天的进展 开发进展 下一步开发计划 摄像头游戏简介
新版的用户手册,有问题的可以看看,没说到的可以回帖提问
deeplymove · 2005-06-22 · via 博客园 - deeplymove

CMECom 1.0 alpha用户使用手册

安装:

演示程序编译于VC++6.0下,在编译前须注册CMECom.dll,可运行bin\setup.bat。

开发环境:

CMECom及其Demo均在VC++6.0、DirectX SDK9.0下开发,操作系统为一台Win2K sp1和一台Winxp sp1。

CMECom可以在MFC、Win32SDK下使用。

Bug List:

Demo_v1和demo_v2由于错误的支持了automation,所以需要在本地编译才能运行。

CMEGame和CMEGame_v1均是Win32sdk+directdraw的方式进行开发,调用了新版本的CMECom,有些接口被改了,与前面的demo不兼容。L

CMEGame_v?各版本的效率均未达到最优化,在后期我会为开发人员提供技术支持,以帮助发挥CMECom的最大性能,充分发挥其潜力。

CMECom的最新版本的Flip功能还存在微小缺陷,主要是有一行一列的画面有错误,会尽快修正。

CMECom的容错性还有待提高。

开发建议:

1.初始化时调用StartPreview函数的返回值可以判断摄像头是否正确连接。S_OK表示正常,其他值则存在错误。

2.每次判断前必须调用Update,如忘记调用则会出现没有画面、或者判断错误等问题。

3.Sensitiveness值与效率有关,数值越大,速度越慢,其实际的效果是调整数值可以忽略低于某一移动速度的物体,也就是说数值提高后,只会对运动快的物体敏感。

4.Tolerant的数值并不会影响速度,但是数值过小会对环境变化很敏感,数值过大会丢失掉一些物体的移动信息。比如在光照强烈时,数值过小会引起误操作,在运动物体和背景颜色接近时,数值过大会引起判断失误。但是由于算法的抗干扰性较强(特殊处理过了)J,推荐实际设定值在20-60以内,可以满足大多数环境要求。另外可以适当配合Sensitiveness参数使用,比如降低Tloerant,提高Sensitiveness可以在某些环境下达到不错的效果。

5.TouchRect的效率还是比较高的,可以放心的多次调用,另外最后的那个count参数会影响性能,数值越大效率越低,不过影响的程序不严重。另外count值不能超过矩形面积。Count值小则灵敏度高,大则抗干扰性好。一般建议1就可以了。

6.AlphaDrawImage的效率实在是低L,这个没什么好的解决方法。在CMEGame里面提供了另一个Alpha Blend函数,虽然没有缩放功能,混合度也不是任意的,不过还是强烈推荐那个,速度快啊!

7.Flip功能也影响性能,但是考虑到操作习惯,还是默认打开此项功能。你可以通过设定Flip = FALSE来关闭此功能。

SDK使用方法概述:

CMECom 1.0 alpha为Com封装,使用方法同一般Com库。

在MFC下可以使用classwiard中automation,add class, from a type library,选择CMECom.tlb

       ICMEngine m_CME;

在初始化中调用:

       m_CME.CreateDispatch("CMECom.CMEngine");

       m_CME.SetTolerant(20);   //设定容差,一般在20-100就可

       m_CME.SetSensitiveness(1);     //设定灵敏度,一般在1-5之间

然后调用:

       m_CME.StartPreview(NULL);

每次判断前应调用:

       m_CME.Update();

提供的方法有:

1.判断是否触摸到某个矩形

前面一个是要判断的触摸范围,后面是整个画面的边框,result为结果,0为触摸到,非0则未触摸到

       m_CME.TouchRect(rc.left, rc.top, rc.right, rc.bottom,

                     rcDest.left, rcDest.top, rcDest.right, rcDest.bottom, 1, &result);

2.绘制采集到的图像

       m_CME.DrawImage((long)mdc, rc.left, rc.top, rc.right, rc.bottom);

3.获得活动点坐标

m_CME.GetLocation(&x, &y, 0);

各方法具体使用详见示例程序。

CMECom属性:

Tolerant——当背景与活动物体之间颜色反差较小时,需把此值设定为一较小的值,以将活动物体从背景中分离出来。当颜色反差较大时,可将此值设的较高,此时可减少误判率。

Sensitiveness——对活动物体的敏感度,数值越大,对慢速运动的物体越不敏感。此数值影响到运算速度,数值越大运算速度越慢。请慎重使用,可根据机器配置的不同设定不同的值。

Flip——是否将画面进行镜像处理。默认为TRUE,此时画面的方向与实际一致,不会产生镜像效果。

CMECom方法:

StartPreview(Long hWnd)——启动摄像头设备。

hWnd:设定要显示预览的窗口,速度较快,但是此窗口无法正常绘制其他图形。如传入参数NULL,则不显示。

Update(void)——重新捕捉画面并完成相应的计算,在每次调用TouchRect、GetLocation等函数前需调用此函数。

TouchRect(long left, long top, long right, long bottom, long sleft, long stop, long sright, long sbottom, long count, long* result)——前面四个参数是要判定的目标矩形坐标,后面是整个画面的坐标,count应在1-(目标矩形面积/整个画面面积*捕捉到的画面矩形面积)之间。Count越大抗干扰能力越强。result为结果,0是触摸到,否则为一非0值。

DrawImage(unsigned long hDC, long left, long top, long right, long bottom)——绘制捕捉到的画面。

hDC:要绘制的目标DC句柄。

left-bottom:目标矩形坐标。

GetLocation(long* x, long* y, long type)——获得移动物体坐标。目前还未完善,仅供测试。

x, y:返回移动物体坐标。

type:扫描模式。

AlphaDrawImage(hDC, left, top, right, bottom, alpha)——将当前捕捉到的画面半透明绘制到窗口中。

前面参数同DrawImage函数

alpha:0完全透明,255完全不透明

SaveImage((char*)str)——保存当前捕捉到的图像

str:文件的全路径,如:“C:\\Test.bmp”

备注:

共享版引擎的速度没有加以限制,最高可以达到30FPS

修改纪录:

2005-6-12 初稿

2005-6-15 加入Sensitiveness,AlphaDrawImage,SaveImage说明