-
Notifications
You must be signed in to change notification settings - Fork 2
/
hand.py
77 lines (61 loc) · 1.96 KB
/
hand.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# coding=utf-8
# 손 클래스
import numpy as np
import copy
# 왼손 좌표
class left_hand:
def __init__(self, x, y):
self.x = x
self.y = y
# 오른손 좌표점
class right_hand:
def __init__(self, x, y):
self.x = x
self.y = y
# 손끝의 지문 좌표 (왼손과 오른손 객체를 가진다.)
class hand:
left_hand=left_hand(0,0)
right_hand=right_hand(0,0)
def setHand(self,left,right):
self.right_hand=right
self.left_hand=left
# 손의 좌표를 가져오는 메소드
def getHand(pcImage):
outImage = copy.copy(pcImage) # 객체 복사하기
rowNumber = 700L
colNumber = 525L
# 튜플에 해당 값을 삽입
row_start = 0
row_end = rowNumber - 1
# 왼쪽손
left = left_hand(0, 0)
# 인체의 흑백 차트를 찾는다.
for i in range(0, colNumber):
for j in range(row_start, row_end):
data_left = outImage[j] # 주소를 얻는 것이라고 하는데 ... 공부를 해봐야할 것같음
if np.any(data_left[i]==[0, 255, 0]): # 초록색 점에 닿으면
left.x = i
left.y = j
break
if left.x > 0:
break
right = right_hand(0, 0)
for k in range(colNumber -1, 0, -1):
for l in range(row_start, row_end):
data_right = outImage[l]
if np.any(data_right[k]==[0, 255, 0]): # 초록색 점에 닿으면
right.x = k
right.y = l
break
if right.x > 0:
break
# 왼손 좌표 및 오른손 좌표 가져오기
print("--left hand--")
print(left.x)
print(left.y)
print("--right hand--")
print(right.x)
print(right.y)
my_hand=hand()
my_hand.setHand(left, right)
return my_hand