| | |
| | | 识别同花顺代码 |
| | | :return: |
| | | """ |
| | | hwnd = ths_util.get_ths_main_content_hwnd() |
| | | start_time = time.time() |
| | | time_use_list = [] |
| | | hwnd = ths_util.get_ths_main_content_hwnd_cached() |
| | | time_use_list.append(("获取句柄", time.time() - start_time)) |
| | | start_time = time.time() |
| | | if not hwnd: |
| | | raise Exception("看盘页面句柄未获取到") |
| | | # 句柄截图 |
| | |
| | | |
| | | # 格式为:(上边距,宽度,高度,缩放倍数) |
| | | rect_ = setting.get_ths_auto_code_rect() |
| | | |
| | | time_use_list.append(("获取配置参数", time.time() - start_time)) |
| | | start_time = time.time() |
| | | # 测试 |
| | | # if len(rect_) > 3: |
| | | # scale = rect_[3] |
| | | width = int((rect[2] - rect[0]) * scale) |
| | | left = width - rect_[1] |
| | | img = win32_util.window_capture(hwnd, (left, rect_[0], width - 1, rect_[0] + rect_[2]), scale, always_save) |
| | | if int(time.time()) % 5 == 0: |
| | | cv2.imwrite(f"test2.png", opencv_util.gray_img(img)) |
| | | if always_save: |
| | | cv2.imwrite(f"test22.png", opencv_util.gray_img(img)) |
| | | time_use_list.append(("截图", time.time() - start_time)) |
| | | start_time = time.time() |
| | | |
| | | if always_save: |
| | | cv2.imwrite(f"test_clip_gray.png", opencv_util.gray_img(img)) |
| | | clip_img, details = opencv_util.clip_ths_code_area(img) |
| | | if always_save: |
| | | cv2.imwrite(f"test_clip_gray_clip.png", clip_img) |
| | | |
| | | time_use_list.append(("分割", time.time() - start_time)) |
| | | start_time = time.time() |
| | | code = ocr_util.recognize_code(clip_img) |
| | | use_time = round((time.time() - start_time) * 1000) |
| | | time_use_list.append(("识别", time.time() - start_time)) |
| | | start_time = time.time() |
| | | if code is None: |
| | | code = ocr_util.recognize_code(img) |
| | | time_use_list.append(("再次识别", time.time() - start_time)) |
| | | start_time = time.time() |
| | | if code != last_ocr_code[0]: |
| | | print("保存图片", code) |
| | | debug_logger.info(f"代码识别结果:{code} 识别时间:{use_time}ms") |
| | | msg = " ".join( [f"{x[0]}:{int(x[1]*1000)}ms" for x in time_use_list]) |
| | | debug_logger.info(f"代码识别结果:{code} {msg}") |
| | | last_ocr_code[0] = code |
| | | cv2.imwrite(f"datas/test/{code}.png", opencv_util.gray_img(img)) |
| | | if always_save: |
| | | cv2.imwrite(f"datas/test/{code}.png", opencv_util.gray_img(img)) |
| | | return code |