From 74e141bb8f3501fe7cf043880b46d8b3b79681e2 Mon Sep 17 00:00:00 2001 From: TG <905865530@qq.com> Date: Mon, 17 Jun 2024 18:04:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9Eqt=5Ftest=E7=9A=84?= =?UTF-8?q?=E9=A2=84=E7=83=AD=E6=95=B0=E6=8D=AE=E9=83=A8=E5=88=86=EF=BC=8C?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=88=90=E5=8A=9F=EF=BC=8C=E9=A2=84=E7=83=AD?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=E5=85=A8=E6=B5=81=E7=A8=8B=E6=80=BB=E7=94=A8?= =?UTF-8?q?=E6=97=B6172.5ms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20240529RGBtest3/main.py | 35 +++++++++++++++++++---------------- 20240529RGBtest3/qt_test.py | 14 ++++++++++++++ 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/20240529RGBtest3/main.py b/20240529RGBtest3/main.py index 58e4f01..f76ec83 100644 --- a/20240529RGBtest3/main.py +++ b/20240529RGBtest3/main.py @@ -89,7 +89,7 @@ def main(is_debug=False): _ = detector.predict(np.ones((30, 30, 224), dtype=np.uint16)) _, _, _, _, _ =dp.analyze_tomato(cv2.imread(r'D:\project\supermachine--tomato-passion_fruit\20240529RGBtest3\data\tomato_img\bad\71.bmp')) _, _, _, _, _ = dp.analyze_passion_fruit(cv2.imread(r'D:\project\supermachine--tomato-passion_fruit\20240529RGBtest3\data\passion_fruit_img\38.bmp')) - # print('初始化完成') + print('初始化完成') rgb_receive_name = r'\\.\pipe\rgb_receive' rgb_send_name = r'\\.\pipe\rgb_send' @@ -98,9 +98,12 @@ def main(is_debug=False): rgb_receive, rgb_send, spec_receive = pipe.create_pipes(rgb_receive_name, rgb_send_name, spec_receive_name) # 预热循环,只处理cmd为'YR'的数据 while True: + start_time00 = time.time() data = pipe.receive_rgb_data(rgb_receive) cmd, _ = pipe.parse_img(data) - if cmd != 'YR': + end_time00 = time.time() + print(f'接收预热数据时间:{end_time00 - start_time00}秒') + if cmd == 'YR': break # 当接收到的不是预热命令时,结束预热循环 while True: @@ -108,15 +111,15 @@ def main(is_debug=False): images = [] cmd = None for _ in range(5): - # start_time1 = time.time() + start_time1 = time.time() data = pipe.receive_rgb_data(rgb_receive) - # end_time10 = time.time() - # print(f'接收一份数据时间:{end_time10 - start_time1}秒') - # start_time11 = time.time() + end_time10 = time.time() + print(f'接收一份数据时间:{end_time10 - start_time1}秒') + start_time11 = time.time() cmd, img = pipe.parse_img(data) - # end_time1 = time.time() - # print(f'处理一份数据时间:{end_time1 - start_time11}秒') - # print(f'接收1张图时间:{end_time1 - start_time1}秒') + end_time1 = time.time() + print(f'处理一份数据时间:{end_time1 - start_time11}秒') + print(f'接收1张图时间:{end_time1 - start_time1}秒') # print(cmd, img.shape) # #打印img的数据类型 # print(img.dtype) @@ -127,18 +130,18 @@ def main(is_debug=False): continue spec = None if cmd == 'PF': - # start_time2 = time.time() + start_time2 = time.time() spec_data = pipe.receive_spec_data(spec_receive) _, spec = pipe.parse_spec(spec_data) - # end_time2 = time.time() - # print(f'接收光谱数据时间:{end_time2 - start_time2}秒') + end_time2 = time.time() + print(f'接收光谱数据时间:{end_time2 - start_time2}秒') # print(spec.shape) - # start_time3 = time.time() + start_time3 = time.time() response = process_data(cmd, images, spec, dp, pipe, detector) - # end_time3 = time.time() - # print(f'处理时间:{end_time3 - start_time3}秒') + end_time3 = time.time() + print(f'处理时间:{end_time3 - start_time3}秒') end_time = time.time() - # print(f'全流程时间:{end_time - start_time}秒') + print(f'全流程时间:{end_time - start_time}秒') if response: logging.info(f'处理成功,响应为: {response}') else: diff --git a/20240529RGBtest3/qt_test.py b/20240529RGBtest3/qt_test.py index 144eabb..e9755e5 100644 --- a/20240529RGBtest3/qt_test.py +++ b/20240529RGBtest3/qt_test.py @@ -71,6 +71,8 @@ class MainWindow(QMainWindow): rgb_files = [os.path.join(image_dir, f) for f in os.listdir(image_dir) if f.endswith(('.bmp'))][:5] spec_files = [os.path.join(image_dir, f) for f in os.listdir(image_dir) if f.endswith('.raw')][:1] + self.send_YR() + for image_path in rgb_files: img = cv2.imread(image_path, cv2.IMREAD_COLOR) img = np.asarray(img, dtype=np.uint8) @@ -116,6 +118,18 @@ class MainWindow(QMainWindow): self.receive_result() + def send_YR(self): + + length = 2 + length = length.to_bytes(4, byteorder='big') + cmd = 'YR' + data_send = length + cmd.upper().encode('ascii') + try: + win32file.WriteFile(self.rgb_send, data_send) + print("发送预热指令成功") + except Exception as e: + print(f"发送预热指令失败. 错误原因: {e}") + def receive_result(self): try: # 读取结果数据