AFORGE 图像处理手势识别 下载本文

内容发布更新时间 : 2024/6/26 23:35:17星期一 下面是文章的全部内容请认真阅读。

基于Aforge的手势识别之二~~~单点手势识别 分类: 计算机视觉2010-05-04 13:46 9058人阅读 评论(12) 收藏 举报 imageprocessing图形objectc 本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 本文把Aforge的运动识别与前面介绍的手写识别融合在一起,实现单个手指的手势识别。下图演示了本文代码运行的结果,图片有点大,请稍候。。。 我预先让程序学习了B和C这两个字母,然后通过手指的手势识别向程序绘画图形,所以点击recorgize时,就自动把图形的特征对应的字母给识别出来了。

这个例子关键部分在于如何灵活运用Aforge的运动识别,如何判断是要画图,还是普通的移来移去呢?在这里,我判断移动对象的大小,当突然面积增大(即两个指套合并)则开始绘图(手势识别的开始),当拆开再合并则为解除绘图(手势识别的结束),说白了就是用一个当前状态=!当前状态去做。 本文的代码可以到这里下载:

http://download.csdn.net/source/2313846 下面贴出运动判断的核心代码: [c-sharp] view plaincopyprint?

1. private void videoSourcePlayer1_NewFrame( object sender, ref Bitmap image ) 2. {

3. nowImg = (Bitmap)image.Clone(); 4.

5. Bitmap objectImage = colorFilter.Apply( image ); 6.

7. // lock image for further processing 8. BitmapData objectData = objectImage.LockBits( new Rectangle( 0, 0, image.Width, image.Height ),

9. ImageLockMode.ReadOnly, image.PixelFormat ); 10.

11. // grayscaling

12. UnmanagedImage grayImage = grayFilter.Apply( new UnmanagedImage( objectData ) ); 13.

14. // unlock image

15. objectImage.UnlockBits( objectData ); 16.

17. // locate blobs

18. blobCounter1.ProcessImage( grayImage ); 19. List rects = new List();

20. rects.AddRange(blobCounter1.GetObjectsRectangles()); 21.

22. if ( rects.Count >0 )