From 34583f738ed7a243807f738766e24a66942089e1 Mon Sep 17 00:00:00 2001 From: FEIJINTI <83849113+FEIJINTI@users.noreply.github.com> Date: Fri, 9 Sep 2022 15:07:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86socket=E9=80=9A?= =?UTF-8?q?=E4=BF=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 0 README.md | 0 classifer.py | 0 pics/TODO.png | Bin pics/result.png | Bin pics/从木板中提取色彩.png | Bin pics/色彩分类.png | Bin root_dir.py | 0 socket_detector.py | 71 ++++++++++++++++++++++++++++++++++++++ utils.py | 0 10 files changed, 71 insertions(+) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 README.md mode change 100644 => 100755 classifer.py mode change 100644 => 100755 pics/TODO.png mode change 100644 => 100755 pics/result.png mode change 100644 => 100755 pics/从木板中提取色彩.png mode change 100644 => 100755 pics/色彩分类.png mode change 100644 => 100755 root_dir.py create mode 100644 socket_detector.py mode change 100644 => 100755 utils.py diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/classifer.py b/classifer.py old mode 100644 new mode 100755 diff --git a/pics/TODO.png b/pics/TODO.png old mode 100644 new mode 100755 diff --git a/pics/result.png b/pics/result.png old mode 100644 new mode 100755 diff --git a/pics/从木板中提取色彩.png b/pics/从木板中提取色彩.png old mode 100644 new mode 100755 diff --git a/pics/色彩分类.png b/pics/色彩分类.png old mode 100644 new mode 100755 diff --git a/root_dir.py b/root_dir.py old mode 100644 new mode 100755 diff --git a/socket_detector.py b/socket_detector.py new file mode 100644 index 0000000..b6612e7 --- /dev/null +++ b/socket_detector.py @@ -0,0 +1,71 @@ +import socket +import numpy as np +import cv2 +from classifer import WoodClass +import time + + +def main(): + model_path = "models/model_2022-09-06_13-08.p" + socket_receive = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + socket_receive.connect(('127.0.0.1', 21122)) + socket_send = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + socket_send.connect(('127.0.0.1', 21123)) + # _ = socket_receive.recv(4096*1000*10) + detector = WoodClass(w=4096, h=1200, n=3000, debug_mode=False) + detector.load(path=model_path) + while True: + # receive data + t1 = time.time() + size_buff = socket_receive.recv(4) + n_rows, n_cols = size_buff[0] << 8 | size_buff[1], size_buff[2] << 8 | size_buff[3] + data_size = n_rows * n_cols * 3 + print(data_size) + recv_size = data_size + buff_all, size = [], 0 + while True: + data_buff = socket_receive.recv(recv_size) + recv_size -= len(data_buff) + buff_all += data_buff + if recv_size == 0: + break + print(len(buff_all)) + raw_data = np.frombuffer(bytes(buff_all), dtype=np.uint8).reshape(int(n_rows), int(n_cols), -1) + print(raw_data.shape) + wood_color = detector.predict(raw_data) + # cv2.imshow("img", raw_data) + # cv2.waitKey(30) + # print('Class is ', wood_color) + if wood_color == 0: + socket_send.send(b'S') + print('S send success') + elif wood_color == 1: + socket_send.send(b'Z') + print('Z send success') + elif wood_color == 2: + socket_send.send(b'Q') + print('Q send success') + print((time.time()-t1)) + + +if __name__ == '__main__': + # 2个端口 + # 接受端口21122 + # 发送端口21123 + # 接收到图片 n_rows * n_bands * n_cols, float32 + # 发送图片 n_rows * n_cols, uint8 + main() + # test(r"D:\build-tobacco-Desktop_Qt_5_9_0_MSVC2015_64bit-Release\calibrated15.raw") + # main() + # debug_main() + # test_run(all_data_dir=r'D:\数据') + # with open(r'D:\数据\虫子\valid2.raw', 'rb') as f: + # data = np.frombuffer(f.read(), dtype=np.float32).reshape(600, 29, 1024).transpose(0, 2, 1) + # plt.matshow(data[:, :, 10]) + # plt.show() + # detector = SpecDetector('model_spec/model_29.p') + # result = detector.predict(data) + # + # plt.matshow(result) + # plt.show() + # result = result.reshape((600, 1024)) diff --git a/utils.py b/utils.py old mode 100644 new mode 100755