OpenCV+python 제스처 인식 프레임 워 크 와 인 스 턴 스 설명

1886 단어 OpenCV손짓식별
OpenCV 2.4.8 과 python 2.7 을 바탕 으로 간단 한 제스처 인식 을 실현 합 니 다.
다음은 기본 절차.
1.배경 제거,손의 윤곽 추출
2.RGB->YUV,직사 도 계산
3.형태학 필 터 를 통 해 관심 분야 추출
4.이치 화 된 이미지 윤곽 찾기
5.가장 큰 손 윤곽 찾기
6.손 윤곽 의 볼록 가방 찾기
7.손가락 과 손바닥 표시
8.추출 한 특징 점 과 제스처 사전 을 비교 한 다음 제스처 와 모양 을 판단 한다.
손 윤곽 추출 cv2.findContours()

최대 볼록 가방 cv2.convex Hull()을 찾 은 다음 손바닥 과 손가락 의 상대 적 인 위 치 를 찾 아 손바닥의 윤곽 과 관건 점 을 찾 습 니 다.손바닥의 중심,손가락 의 상대 적 인 위 치 를 포함 합 니 다.

특징 사전 은 주로 다음 과 같은 몇 가지 측면 을 포함한다.이름,손바닥 중심 점,손바닥 의 지름,손가락 의 좌표 점,손가락 의 개수,손가락 간 의 각도 이다.
예 를 들 면:

# BEGIN ------------------------------------#
V=gesture("V")
V.set_palm((475,225),45)
V.set_finger_pos([(490,90),(415,105)])
V.calc_angles()
dict[V.getname()]=V
# END --------------------------------------#
최종 식별 결 과 는 다음 과 같다.

예제 코드

  frame=hand_threshold(fg_frame,hand_histogram)
  contour_frame=np.copy(frame)
  contours,hierarchy=cv2.findContours(contour_frame,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
  found,hand_contour=hand_contour_find(contours)
  if(found):
   hand_convex_hull=cv2.convexHull(hand_contour)
   frame,hand_center,hand_radius,hand_size_score=mark_hand_center(frame_original,hand_contour)
   if(hand_size_score):
    frame,finger,palm=mark_fingers(frame,hand_convex_hull,hand_center,hand_radius)
    frame,gesture_found=find_gesture(frame,finger,palm)
  else:
   frame=frame_original
이상 의 OpenCV+python 제스처 인식 프레임 워 크 와 인 스 턴 스 설명 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 가 되 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기