OnmyojiAutoScript icon indicating copy to clipboard operation
OnmyojiAutoScript copied to clipboard

百鬼夜行 opencv异常

Open kongdr418 opened this issue 1 year ago • 9 comments

在提问之前...

  • [X] 我已经搜索了现有的 issues
  • [X] 我在提问题之前至少花费了 5 分钟来思考和准备
  • [X] 我已经阅读了文档中的 常见问题(FAQ)
  • [X] 这个问题出现了至少三次,不是偶发的
  • [ ] 我使用 OAS 的 dev 分支

描述你的问题

百鬼夜行可以进去,但是不会自动撒豆。我在issue上也遇到同样问题的人,但根据他的操作问题并没有解决。

如何复现

  1. 前往 '...'
  2. 点击 '....'
  3. 滑动到 '....'
  4. 出现问题

预期行为

No response

相关 Logs

INFO     2024-07-28 12:50:20.072 │ [Screen_size] 1280x720
INFO     2024-07-28 12:50:20.077 │ module_path: D:\yys\OnmyojiAutoScript-easy-install\tasks\Hyakkiyakou\script_task.py,
         module_name: script_task
INFO     2024-07-28 12:50:20.201 │ UI get current page
INFO     2024-07-28 12:50:20.216 │ [UI] page_town
INFO     2024-07-28 12:50:20.223 │ <<< UI GOTO PAGE_HYAKKIYAKOU >>>
INFO     2024-07-28 12:50:20.236 │ Page switch: page_town -> page_hyakkiyakou
INFO     2024-07-28 12:50:20.242 │ Click ( 898,  205) @ PAGE_TOWN_GOTO_HYAKKIYAKOU
INFO     2024-07-28 12:50:21.877 │ Page arrive: page_hyakkiyakou
WARNING  2024-07-28 12:50:21.883 │ Page Error
INFO     2024-07-28 12:50:22.361 │ Click (1153,  635) @ HYA_HACCESS
INFO     2024-07-28 12:50:24.612 │ Click (1204,  564) @ HYA_HSTART
INFO     2024-07-28 12:50:25.199 │ Click ( 293,  383) @ hselect_1
INFO     2024-07-28 12:50:26.625 │ Click (1162,  572) @ HYA_HSTART
INFO     2024-07-28 12:50:27.942 │ <<< START HYAKKIYAKOU >>>
INFO     2024-07-28 12:50:27.945 │ Reset Debugger Thread Environment
INFO     2024-07-28 12:50:27.947 │ Continuous Learning Mode Enabled
INFO     2024-07-28 12:50:27.950 │ OAS Track Debugger show image start

截图

7ddc0458ef0a1e3e03ff2595ed194e9 02e97c38148e5e12c260ec7fa1a06ed 9daf93454d54c5160822dbd85c9eeb7 8eaf8897e9a9863003eb24f75219ca0 日志到这里就不动了

还有别的吗?

No response

kongdr418 avatar Jul 28 '24 04:07 kongdr418

QQ_1722147907896 不要这个

runhey avatar Jul 28 '24 06:07 runhey

模拟器窗口别缩放

runhey avatar Jul 28 '24 06:07 runhey

87c592be2409dea3ad12d331fca942a ![屏幕截图 2024-07-28 160055](https://github.com/user-attachments/assets/28916d80-84af-492e-909b-d2d8ff6511b9) 1664f50dec9745f92a6ff2f3bdac8e7 我换成全屏模式,在庭院开脚本他会点这棵树

kongdr418 avatar Jul 28 '24 08:07 kongdr418

全屏不要

runhey avatar Jul 28 '24 08:07 runhey

ERROR | 16:52:12.144 | error: OpenCV(4.7.0)
D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\templmatch. cpp:1175: error: (-215:Assertion failed) _img.size().height <=
_templ.size().height && _img.size().width <= _templ.size().width in
function 'cv::matchTemplate'

     ╭───────────────── Traceback (most recent call last) ─────────────────╮
     │ D:\yys\OnmyojiAutoScript-easy-install\script.py:352 in run          │
     │                                                                     │
     │   349 │   │   │   module_path = str(Path.cwd() / 'tasks' / command  │
     │   350 │   │   │   logger.info(f'module_path: {module_path}, module_ │
     │   351 │   │   │   task_module = load_module(module_name, module_pat │
     │ ❱ 352 │   │   │   task_module.ScriptTask(config=self.config, device │
     │   353 │   │   except TaskEnd:                                       │
     │   354 │   │   │   return True                                       │
     │   355 │   │   except GameNotRunningError as e:                      │
     │                                                                     │
     │ ╭──────────────────────────── locals ─────────────────────────────╮ │
     │ │     command = 'Hyakkiyakou'                                     │ │
     │ │           e = error("OpenCV(4.7.0)                              │ │
     │ │               D:\\a\\opencv-python\\opencv-python\\opencv\\mod… │ │
     │ │               error: (-215:Assertion failed) _img.size().height │ │
     │ │               <= _templ.size().height && _img.size().width <=   │ │
     │ │               _templ.size().width in function                   │ │
     │ │               'cv::matchTemplate'\n")                           │ │
     │ │ module_name = 'script_task'                                     │ │
     │ │ module_path = 'D:\\yys\\OnmyojiAutoScript-easy-install\\tasks\… │ │
     │ │        self = <script.Script object at 0x0000025758EF77F0>      │ │
     │ │ task_module = <module 'script_task' from                        │ │
     │ │               'D:\\yys\\OnmyojiAutoScript-easy-install\\tasks\… │ │
     │ ╰─────────────────────────────────────────────────────────────────╯ │
     │                                                                     │
     │ D:\yys\OnmyojiAutoScript-easy-install\tasks\Hyakkiyakou\script_task │
     │ .py:139 in run                                                      │
     │                                                                     │
     │   136 │   │   │   │   logger.info('Hyakkiyakou time limit out')     │
     │   137 │   │   │   │   break                                         │
     │   138 │   │   │                                                     │
     │ ❱ 139 │   │   │   self.one()                                        │
     │   140 │   │   │   hya_count += 1                                    │
     │   141 │   │                                                         │
     │   142 │   │   while 1:                                              │
     │                                                                     │
     │ ╭──────────────────────────── locals ─────────────────────────────╮ │
     │ │  hya_count = 0                                                  │ │
     │ │ limit_time = Time(0, 20)                                        │ │
     │ │       self = <script_task.ScriptTask object at                  │ │
     │ │              0x000002570A8D7BE0>                                │ │
     │ ╰─────────────────────────────────────────────────────────────────╯ │
     │                                                                     │
     │ D:\yys\OnmyojiAutoScript-easy-install\tasks\Hyakkiyakou\script_task │
     │ .py:184 in one                                                      │
     │                                                                     │
     │   181 │   │   │   self.fast_screenshot()                            │
     │   182 │   │   │   if self.appear(self.I_HEND):                      │
     │   183 │   │   │   │   break                                         │
     │ ❱ 184 │   │   │   if not self.appear(self.I_CHECK_RUN):             │
     │   185 │   │   │   │   continue                                      │
     │   186 │   │   │   if not init_bean_flag:                            │
     │   187 │   │   │   │   init_bean_flag = True                         │
     │                                                                     │
     │ ╭──────────────────────────── locals ─────────────────────────────╮ │
     │ │   click_button = <module.atom.click.RuleClick object at         │ │
     │ │                  0x000002570A3EED10>                            │ │
     │ │ init_bean_flag = False                                          │ │
     │ │    last_action = [0, 0, False, 10]                              │ │
     │ │           self = <script_task.ScriptTask object at              │ │
     │ │                  0x000002570A8D7BE0>                            │ │
     │ ╰─────────────────────────────────────────────────────────────────╯ │
     │                                                                     │
     │ D:\yys\OnmyojiAutoScript-easy-install\tasks\base_task.py:160 in     │
     │ appear                                                              │
     │                                                                     │
     │   157 │   │   │   if not self.interval_timer[target.name].reached() │
     │   158 │   │   │   │   return False                                  │
     │   159 │   │                                                         │
     │ ❱ 160 │   │   appear = target.match(self.device.image, threshold=th │
     │   161 │   │                                                         │
     │   162 │   │   if appear and interval:                               │
     │   163 │   │   │   self.interval_timer[target.name].reset()          │
     │                                                                     │
     │ ╭──────────────────────────── locals ─────────────────────────────╮ │
     │ │  interval = None                                                │ │
     │ │      self = <script_task.ScriptTask object at                   │ │
     │ │             0x000002570A8D7BE0>                                 │ │
     │ │    target = TRAIN_CHECK_RUN                                     │ │
     │ │ threshold = None                                                │ │
     │ ╰─────────────────────────────────────────────────────────────────╯ │
     │                                                                     │
     │ D:\yys\OnmyojiAutoScript-easy-install\module\atom\image.py:146 in   │
     │ match                                                               │
     │                                                                     │
     │   143 │   │                                                         │
     │   144 │   │   source = self.corp(image)                             │
     │   145 │   │   mat = self.image                                      │
     │ ❱ 146 │   │   res = cv2.matchTemplate(source, mat, cv2.TM_CCOEFF_NO │
     │   147 │   │   min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(re │
     │       最小匹配度,最大匹配度,最小匹配度的坐标,最大匹配度的坐标    │
     │   148 │   │   # logger.attr(self.name, max_val)                     │
     │   149 │   │   if max_val > threshold:                               │
     │                                                                     │
     │ ╭─────────────────────── locals ────────────────────────╮           │
     │ │     image = array([[[255, 255, 255],                  │           │
     │ │             │   │   [255, 255, 255],                  │           │
     │ │             │   │   [255, 255, 255],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39]],                 │           │
     │ │             │                                         │           │
     │ │             │      [[255, 255, 255],                  │           │
     │ │             │   │   [255, 255, 255],                  │           │
     │ │             │   │   [255, 255, 255],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39]],                 │           │
     │ │             │                                         │           │
     │ │             │      [[255, 255, 255],                  │           │
     │ │             │   │   [255, 255, 255],                  │           │
     │ │             │   │   [255, 255, 255],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39]],                 │           │
     │ │             │                                         │           │
     │ │             │      ...,                               │           │
     │ │             │                                         │           │
     │ │             │      [[  0,   0,   0],                  │           │
     │ │             │   │   [  0,   0,   0],                  │           │
     │ │             │   │   [  0,   0,   0],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39]],                 │           │
     │ │             │                                         │           │
     │ │             │      [[  0,   0,   0],                  │           │
     │ │             │   │   [  0,   0,   0],                  │           │
     │ │             │   │   [  0,   0,   0],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39]],                 │           │
     │ │             │                                         │           │
     │ │             │      [[  0,   0,   0],                  │           │
     │ │             │   │   [  0,   0,   0],                  │           │
     │ │             │   │   [  0,   0,   0],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39],                  │           │
     │ │             │   │   [ 28,  33,  39]]], dtype=uint8)   │           │
     │ │       mat = array([[[ 71,  24,  40],                  │           │
     │ │             │   │   [ 71,  24,  41],                  │           │
     │ │             │   │   [ 72,  24,  41],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [ 79,  25,  40],                  │           │
     │ │             │   │   [ 79,  25,  40],                  │           │
     │ │             │   │   [ 79,  25,  40]],                 │           │
     │ │             │                                         │           │
     │ │             │      [[ 88,  26,  44],                  │           │
     │ │             │   │   [ 89,  27,  45],                  │           │
     │ │             │   │   [ 89,  27,  45],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [ 95,  27,  42],                  │           │
     │ │             │   │   [ 96,  27,  42],                  │           │
     │ │             │   │   [ 96,  27,  42]],                 │           │
     │ │             │                                         │           │
     │ │             │      [[ 99,  27,  44],                  │           │
     │ │             │   │   [ 97,  27,  44],                  │           │
     │ │             │   │   [ 95,  27,  43],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [ 99,  27,  41],                  │           │
     │ │             │   │   [101,  27,  41],                  │           │
     │ │             │   │   [100,  27,  41]],                 │           │
     │ │             │                                         │           │
     │ │             │      ...,                               │           │
     │ │             │                                         │           │
     │ │             │      [[ 86,  55,  73],                  │           │
     │ │             │   │   [ 84,  54,  71],                  │           │
     │ │             │   │   [ 82,  52,  69],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [170,  66,  82],                  │           │
     │ │             │   │   [170,  66,  82],                  │           │
     │ │             │   │   [169,  66,  81]],                 │           │
     │ │             │                                         │           │
     │ │             │      [[ 82,  53,  69],                  │           │
     │ │             │   │   [ 80,  52,  68],                  │           │
     │ │             │   │   [ 79,  51,  66],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [174,  67,  83],                  │           │
     │ │             │   │   [174,  67,  83],                  │           │
     │ │             │   │   [174,  67,  83]],                 │           │
     │ │             │                                         │           │
     │ │             │      [[ 83,  54,  67],                  │           │
     │ │             │   │   [ 90,  57,  65],                  │           │
     │ │             │   │   [ 98,  60,  65],                  │           │
     │ │             │   │   ...,                              │           │
     │ │             │   │   [174,  67,  83],                  │           │
     │ │             │   │   [174,  67,  83],                  │           │
     │ │             │   │   [175,  68,  84]]], dtype=uint8)   │           │
     │ │      self = TRAIN_CHECK_RUN                           │           │
     │ │    source = array([], shape=(0, 143, 3), dtype=uint8) │           │
     │ │ threshold = 0.8                                       │           │
     │ ╰───────────────────────────────────────────────────────╯           │
     ╰─────────────────────────────────────────────────────────────────────╯
     error: OpenCV(4.7.0)                                                   
     D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\templmatch.
     cpp:1175: error: (-215:Assertion failed) _img.size().height <=         
     _templ.size().height && _img.size().width <= _templ.size().width in    
     function 'cv::matchTemplate'                                           

WARNING | 16:52:12.690 | Saving error: ./log/error/1722156732690
INFO | 16:52:12.939 | Notifier: OAS1
INFO | 16:52:12.942 | Script oas1 process exit
ERROR | 16:52:12.943 | Error: 1
2024-07-28_16-52-12-126765 报错了,这是报错截图

kongdr418 avatar Jul 28 '24 08:07 kongdr418

source = array([], shape=(0, 143, 3), dtype=uint8)

内部截屏出现了一些异常导致 y 维度为0

runhey avatar Jul 28 '24 13:07 runhey

但是既然有保存图片下来并且是正确的,我更可能倾向于opencv的问题,就是操作过程使得y=0

runhey avatar Jul 28 '24 13:07 runhey

我建议 1.重启电脑 2.重装oas 3.换设备

runhey avatar Jul 28 '24 13:07 runhey

image

runhey avatar Jul 28 '24 13:07 runhey