使用正点原子开拓者开发板,预定义三种手势:石头(0)、剪刀(2)、布(5)。通过 OV5640 摄像头套件对手势图像进行采集,LCD 显示屏(显示屏用的正点原子的 7 寸 RGB_LCD,分辨率为 1024×600)对系统处理后的手势进行实时显示,根据预定义手势的面积周长比判断手势,最终通过数码管显示识别的结果。
图像处理这一块儿通过 rgb 颜色空间转 ycbcr 颜色空间后,将 cb 和 cr 分量设置合适的区间范围,用来提取肤色部分,然后通过开运算(先腐蚀后膨胀)进行图像的形态学运算,得到的结果如图所示:
从开运算后的图像中提取每一帧图像的白色像素点个数,作为手势的面积。
然后提取开运算后的二值图像的边界,结果如图所示:
从边界提取后的图像中提取每一帧图像的白色像素点个数,作为手势的周长。
最后,根据手势的面积周长比来判断三种预定义手势,通过数码管显示判断结果。如图所示:
根据手势的面积周长比可以用来判断多种手势,这种方法判断手势的方法简单快速,由于进行了肤色检测,也不需要纯色背景,但是背景中尽量不能有与肤色相近的颜色。同时,这种方法进行手势识别的影响因素太多,比如手部与摄像头的距离;光线等,识别正确率也不高。
总结:可以使用,但是影响因素太多,局限性太大。