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