百鬼夜行 opencv异常
在提问之前...
- [X] 我已经搜索了现有的 issues
- [X] 我在提问题之前至少花费了 5 分钟来思考和准备
- [X] 我已经阅读了文档中的 常见问题(FAQ)
- [X] 这个问题出现了至少三次,不是偶发的
- [ ] 我使用 OAS 的 dev 分支
描述你的问题
百鬼夜行可以进去,但是不会自动撒豆。我在issue上也遇到同样问题的人,但根据他的操作问题并没有解决。
如何复现
- 前往 '...'
- 点击 '....'
- 滑动到 '....'
- 出现问题
预期行为
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
截图
还有别的吗?
No response
不要这个
模拟器窗口别缩放
全屏不要
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
报错了,这是报错截图
source = array([], shape=(0, 143, 3), dtype=uint8)
内部截屏出现了一些异常导致 y 维度为0
但是既然有保存图片下来并且是正确的,我更可能倾向于opencv的问题,就是操作过程使得y=0
我建议 1.重启电脑 2.重装oas 3.换设备