第一范文网 - 专业文章范例文档资料分享平台

AFORGE 图像处理手势识别

来源:用户分享 时间:2025/10/7 17:34:46 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

向下的手,斜的峰值 手转移到直方图的开始(顶部的垂直直方图),但是 对角的峰值下降更多转向中心。 我们可以使用这个属性来 检查提出的具体类型:

如果(((双)直方图。 最小/(直方图。 马克斯-直方图。 分钟+ 1)< maxRaisedUpHandProportion) {

handPosition = HandPosition.RaisedDiagonallyUp; }

其他的 {

handPosition = HandPosition.RaisedDiagonallyDown; }

我们是做! 现在我们的算法是能够识别4每只手的位置。 同样的申请 第二,我们的算法将提供未来的结果对于那些4手手势,这是 上图:演示

? ? ? ?

不提高左手,右手不提高; 左手提高斜向下,右手不提高; 左手提高直,右手不提高; 左手抬起对角,右手不提高。

如果两个不举手不被认为是一个手势,然后算法可以识别15 手手势,组合不同的手的位置。

结论

我们可以看出从上面的文章中,我们得到了算法,首先,让我们来提取 将对象从一个视频饲料,第二,认识到成功的手手势了 的对象。 识别算法非常简单,容易实现,如 的理解。 同样,只因为它是基于直方图的信息,是非常有效的 在性能和不需要大量的计算资源,这是很重要的 如果我们需要处理很多帧每秒。

使算法易于理解? 已经使用的通用图像处理例程AForge.Imaging图书馆的一部分AForge。 微软网络框架。 这意味着从通用的例程专业(例程可能几个步骤结合在一个) 很容易可以提高这些算法的性能。

关于可能的地区这些算法的改进,我们可以确定下一个领域:

? ?

更健壮的识别的手? 影子在墙上;

处理动态场景,不同的运动可能发生背后的主要对象。

Posted: October 12,

2008

Updated: February 16,

by Andrew Kirillov

2010

Hands Gesture Recognition

Some ideas about Hands Gesture Recognition in still images and video feeds.

Programming languages: C#

AForge.NET

framework: 2.1.1

Sample application (sources) - 149K Sample application (binaries) - 130K Sample video #1 - 7290K Sample video #2 - 11084K

Introduction

Since the time I've wrote my first article about motion detection, I've got a lot of

e-mails from different people around the world, which found the article quite useful and found a lot of applications of the code in many different areas. Those areas were including from simple video surveillance tools to quite impressing applications, like laser gestures recognition, detecting comets with telescope, detecting

humming-birds and making camera shots of them, controlling water cannon and many other applications.

In this article I would like to discuss one more application, which uses motion detection as its first step and then does some interesting routines with the detected object - hands gesture recognition. Let's suppose we have a camera, which monitors some area. When somebody gets into the area and makes some hands gestures in front of the camera, application should detect type of the gesture and

raise an event, for example. When the hands gesture recognition is detected, the application may perform different actions depending on the type of gesture. For example, gestures recognition application may control some sort of device or another application sending different commands to it depending on the recognized gesture. What type of hands gestures are we talking about? This particular application, which is discussed in the article, may recognize up to 15 gestures, which are combination of 4 different positions of 2 hands - hand is not raised, raised diagonally down, diagonally up or raised straight.

All the algorithms described in the article are based on the AForge.NET framework, which provides different image processing routines used by the application. The application also uses some motion detection routines, which are inspired by the framework and another article dedicated to motion detection.

Before we go into deep discussions about what the application does and how it is implemented, let?s take a look at the very quick demo ...

Motion detection and object extraction

Before we can start with hands gesture recognition, first of all we need to extract human?s body, which demonstrates some gesture, and find a good moment, when the actual gesture recognition should be done. For both these tasks we are going to reuse some motion detection ideas described in the dedicated to motion detection article.

For object extraction task we are going to use the approach, which is based on background modeling. Let?s suppose that the very first frame of a video stream does not contain any moving objects, but just contains a background scene.

Of course such assumption can not be valid for call cases. But, first of all, it may be valid for most of the cases, so it is quite applicable, and the second ? our algorithm is going to be adaptive, so it could handle situations, when the first frame contains not only the background. But, let?s be consecutive ... So, our very fist frame can be taken as approximation of background frame.

// check background frame

if ( backgroundFrame == null ) {

// save image dimension width = image.Width; height = image.Height; frameSize = width * height;

// create initial backgroung image bitmapData = image.LockBits(

new Rectangle( 0, 0, width, height ),

ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb ); // apply grayscale filter getting unmanaged image backgroundFrame = grayscaleFilter.Apply( new UnmanagedImage( bitmapData ) ); // unlock source image

image.UnlockBits( bitmapData );

... }

Now let?s suppose that after a while we receive a new frame, which contains some object, and our task is to extract it.

搜索更多关于: AFORGE 图像处理手势识别 的文档
AFORGE 图像处理手势识别.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2k7in4fdmu3sk4u08ki8_8.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top