Showing
1 changed file
with
32 additions
and
10 deletions
... | @@ -4,6 +4,7 @@ import numpy as np | ... | @@ -4,6 +4,7 @@ import numpy as np |
4 | from queue import Queue | 4 | from queue import Queue |
5 | from _thread import * | 5 | from _thread import * |
6 | enclose_q = Queue() | 6 | enclose_q = Queue() |
7 | +recv_enclose_q = Queue() | ||
7 | import time | 8 | import time |
8 | def filter_img(img): | 9 | def filter_img(img): |
9 | #이미지의 RGB값을 분석하여 찾는 실내 Tag가 맞는지 판별 | 10 | #이미지의 RGB값을 분석하여 찾는 실내 Tag가 맞는지 판별 |
... | @@ -30,9 +31,6 @@ def bboxes(inp): | ... | @@ -30,9 +31,6 @@ def bboxes(inp): |
30 | img = inp | 31 | img = inp |
31 | start = time.time() | 32 | start = time.time() |
32 | curTime = time.time() | 33 | curTime = time.time() |
33 | - # img2gray = cv2.imread(fname,0) | ||
34 | - # img = cv2.namedWindow(img,cv2.WINDOW_NORMAL) | ||
35 | - # img = cv2.resizeWindow(img,600,600) | ||
36 | img_final = inp | 34 | img_final = inp |
37 | img2gray = cv2.cvtColor(inp, cv2.COLOR_BGR2GRAY) #GRAY Image 8bit per pixel | 35 | img2gray = cv2.cvtColor(inp, cv2.COLOR_BGR2GRAY) #GRAY Image 8bit per pixel |
38 | ret, mask = cv2.threshold(img2gray, 180, 255, cv2.THRESH_BINARY) #threshold : distinguish background, object | 36 | ret, mask = cv2.threshold(img2gray, 180, 255, cv2.THRESH_BINARY) #threshold : distinguish background, object |
... | @@ -58,7 +56,7 @@ def bboxes(inp): | ... | @@ -58,7 +56,7 @@ def bboxes(inp): |
58 | continue | 56 | continue |
59 | return cropped | 57 | return cropped |
60 | 58 | ||
61 | -def threaded(Client_socket, addr, queue): | 59 | +def send_threaded(Client_socket, addr, queue): |
62 | print("Connected by : ", addr[0], " : ", addr[1]) | 60 | print("Connected by : ", addr[0], " : ", addr[1]) |
63 | while True: | 61 | while True: |
64 | try : | 62 | try : |
... | @@ -73,7 +71,6 @@ def threaded(Client_socket, addr, queue): | ... | @@ -73,7 +71,6 @@ def threaded(Client_socket, addr, queue): |
73 | print("Disconnected") | 71 | print("Disconnected") |
74 | Client_socket.close() | 72 | Client_socket.close() |
75 | 73 | ||
76 | - | ||
77 | def webcam(queue): | 74 | def webcam(queue): |
78 | capture = cv2.VideoCapture(0) | 75 | capture = cv2.VideoCapture(0) |
79 | while True: | 76 | while True: |
... | @@ -91,23 +88,48 @@ def webcam(queue): | ... | @@ -91,23 +88,48 @@ def webcam(queue): |
91 | key = cv2.waitKey(1) | 88 | key = cv2.waitKey(1) |
92 | if key == 27: | 89 | if key == 27: |
93 | break | 90 | break |
91 | +def recvall(sock, count): | ||
92 | + # 바이트 문자열 | ||
93 | + buf = b'' | ||
94 | + while count: | ||
95 | + newbuf = sock.recv(count) | ||
96 | + if not newbuf: return None | ||
97 | + buf += newbuf | ||
98 | + count -= len(newbuf) | ||
99 | + return buf | ||
94 | 100 | ||
95 | if __name__ == '__main__': | 101 | if __name__ == '__main__': |
96 | - HOST = '127.0.0.1' | 102 | + SEND_HOST = '127.0.0.1' #CORE CLOUD |
97 | - PORT = 9999 | 103 | + SEND_PORT = 9999 |
98 | 104 | ||
99 | server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | 105 | server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
100 | server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) | 106 | server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
101 | - server_socket.bind((HOST, PORT)) | 107 | + server_socket.bind((SEND_HOST, SEND_PORT)) |
102 | server_socket.listen() | 108 | server_socket.listen() |
103 | 109 | ||
110 | + RECV_HOST = '127.0.0.1' #CORE CLOUD | ||
111 | + RECV_PORT = 9998 | ||
112 | + | ||
113 | + recv_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | ||
114 | + recv_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) | ||
115 | + recv_server_socket.bind((RECV_HOST, RECV_PORT)) | ||
116 | + recv_server_socket.listen() | ||
117 | + | ||
104 | print('server start') | 118 | print('server start') |
105 | 119 | ||
106 | start_new_thread(webcam, (enclose_q,)) | 120 | start_new_thread(webcam, (enclose_q,)) |
107 | - | ||
108 | while True: | 121 | while True: |
109 | print('wait') | 122 | print('wait') |
110 | 123 | ||
111 | client_socket, addr = server_socket.accept() | 124 | client_socket, addr = server_socket.accept() |
112 | - start_new_thread(threaded, (client_socket, addr, enclose_q,)) | 125 | + start_new_thread(send_threaded, (client_socket, addr, enclose_q,)) #전처리 데이터 송신 |
126 | + conn,addr = recv_server_socket.accept() #수신 대기 | ||
127 | + if(conn): | ||
128 | + length = recvall(conn, 16) | ||
129 | + stringData = recvall(conn, int(length)) | ||
130 | + data = np.fromstring(stringData, dtype = 'uint8') #주행정보 수신 | ||
131 | + if(conn): #연결 끊어질 경우 loop 탈출 | ||
132 | + break | ||
133 | + else: | ||
134 | + pass | ||
113 | server_socket.close() | 135 | server_socket.close() | ... | ... |
-
Please register or login to post a comment