本文实例为大家分享了opencv实现静态手势识别的具体代码,供大家参考,具体内容如下
要想运行该代码,请确保安装了:python 2.7,opencv 2.4.9
效果如下:
算法如下:
把图片先进行处理,处理过程:
1.用膨胀图像与腐蚀图像相减的方法获得轮廓。
2.用二值化获得图像
3. 反色
经过如上的处理之后,图片为:
这之后就简单了,设计一个办法把三种图像区分开来即可。
代码如下:
# -*- coding: cp936 -*-
import cv2
import numpy
import time
import random
import os
def judge( ):
#构造一个3×3的结构元素
# return 0 stone ,1 jiandao, 2 bu
img = cv2.imread("wif.jpg",0)
element = cv2.getstructuringelement(cv2.morph_rect,(11,11))
dilate = cv2.dilate(img, element)
erode = cv2.erode(img, element)
#将两幅图像相减获得边,第一个参数是膨胀后的图像,第二个参数是腐蚀后的图像
result = cv2.absdiff(dilate,erode);
#上面得到的结果是灰度图,将其二值化以便更清楚的观察结果
retval, result = cv2.threshold(result, 40, 255, cv2.thresh_binary);
#反色,即对二值图每个像素取反
result = cv2.bitwise_not(result);
result =cv2.medianblur(result,23)
<