我使用OpenCV2.4.4的windows版本+Qt4.8.3+VS2010的编译器做了一个手势识别的小程序。
本程序主要使到了Opencv的特征训练库和最基本的图像处理的知识,包括肤色检测等等。
废话不多,先看一下基本的界面设计,以及主要功能:
相信对于Qt有一些了解的人都不会对这个界面的设计感到陌生吧!(该死,该死!)我们向下走:
紧接着是Qt导入OPenCV2.4.4的库文件:(先看一下Qt的工程文件吧)
#-------------------------------------------------
#
# Project created by QtCreator 2013-05-25T11:16:11
#
#-------------------------------------------------
QT += core gui
CONFIG += warn_off
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = HandGesture
TEMPLATE = app
INCLUDEPATH += E:/MyQtCreator/MyOpenCV/opencv/build/include
SOURCES += main.cpp\
handgesturedialog.cpp \
SRC/GestrueInfo.cpp \
SRC/AIGesture.cpp
HEADERS += handgesturedialog.h \
SRC/GestureStruct.h \
SRC/GestrueInfo.h \
SRC/AIGesture.h
FORMS += handgesturedialog.ui
#Load OpenCV runtime libs
当做好以上的基本配置之后,我们进行手势识别的开发:
第一:要采集到原始的图片
采集好原始图片后进行修正,包括尺寸大小,那时我还使用到了matlab这个强大的工具,
紧接着进行图像的样本特征提取,到网上把,CSDN中有大量的关于对图像特征训练库的识别与训练,按照他们一步一步的操作模式不会有问题的饿
下面是要通过摄像头进行图像的采集,直接贴代码:
查看一下样例图片:
基本上对于自己使用代码创建的训练库的特征提取函数和基本的肤色检测和连通域的检测的函数的核心代码都已经贴到上面去了。
然后再看一下对于特定的手势识别的文件:
注意该特征文件包含了手掌半握式的手势效果较好:
多谢大家,这么长时间的阅读和浏览,小弟做的很粗糙还有一些地方自已也没有弄明白,希望各位大神批评指教!
我已把源代码上传到对应的资源中去,以便大家学习修改!