-
Notifications
You must be signed in to change notification settings - Fork 2
/
middlepoint.py
67 lines (52 loc) · 1.65 KB
/
middlepoint.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
# coding=utf-8
# 중간점, 다리를 찾는 클래스
import cv2
import bodycontour as bc # 윤곽선을 구하는 기능
import bodyposition as bp # 신체의 특정점들을 가져오는 기능
import numpy as np
import copy
# 중간점, 양 다리 점
class leftpoint:
def __init__(self, x, y):
self.x = x
self.y = y
class rightpoint:
def __init__(self, x, y):
self.x = x
self.y = y
class middlepoint:
def __init__(self, x, y):
self.x = x
self.y = y
# 중간점을 찾는 메소드드
def getMiddlePoint(pcImage):
outImage = copy.copy(pcImage) # 객체 복사하기
rowNumber = 700L
colNumber = 525L
col_start = 0
col_end = colNumber - 1
row_start = 0
row_end = rowNumber - 1
left_point = leftpoint(0, 0)
right_point = rightpoint(0, 0)
middle_point_X = int(colNumber/2)
middle_point_Y = rowNumber-1
middle_point = middlepoint(middle_point_X, middle_point_Y)
for i in range(rowNumber-1, 0, -1):
data_middle = outImage[i]
for j in range(col_start, col_end):
if np.any(data_middle[j]==[0, 255, 0]):
middle_point.x = i
count = 0
for j in range(1, 10):
if np.any(data_middle[j] == [0, 255, 0]):
count = count + 1
if(count > 5):
left_point.x = middle_point.x
left_point.y = middle_point.y
for j in range(1, colNumber-1, 1):
if np.any(data_middle[j] == [0,255,0]):
right_point.x = middle_point.x + j
right_point.y = middle_point.y
break
return middle_point