{"record":{"id":"a6d94e6c03cda1fb","repo":"babalae/better-genshin-impact","slug":"error-a6d94e","errorCode":null,"errorMessage":"未找到原粹树脂图标","messagePattern":"未找到原粹树脂图标","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"BetterGenshinImpact/GameTask/AutoDomain/Model/ResinStatus.cs","lineNumber":54,"sourceCode":"    {\n        var status = new ResinStatus();\n\n        // 1. 原粹树脂\n        var assetScale = systemInfo.AssetScale;\n        var originalResinTopIconRa = new RecognitionObject\n        {\n            Name = \"OriginalResinTopIcon\",\n            RecognitionType = RecognitionTypes.TemplateMatch,\n            TemplateImageMat = GameTaskManager.LoadAssetImage(\"AutoFight\", \"original_resin_top_icon.png\", systemInfo),\n            DrawOnWindow = false\n        }.InitTemplate();\n        using ImageRegion crop1 = region.DeriveCrop(new Rect((int)(1300 * assetScale), (int)(25 * assetScale), (int)(160 * assetScale), (int)(50 * assetScale)));   // 数字位数的不同导致了水平方向上宽泛的区域\n        //Cv2.ImShow(\"test\", crop1.SrcMat);\n        //Cv2.WaitKey();\n        var originalResinRes = crop1.Find(originalResinTopIconRa);\n        if (originalResinRes.IsEmpty())\n        {\n            throw new Exception(\"未找到原粹树脂图标\");\n        }\n\n        var originalResinCountRect = new Rect(crop1.X + originalResinRes.Right + (int)(25 * assetScale), (int)(37 * assetScale), (int)(110 * assetScale)/* 考虑最长的“200/200” */, (int)(24 * assetScale));\n        using ImageRegion originalResinCountRegion = region.DeriveCrop(originalResinCountRect);\n        string cnt1 = ocrService.OcrWithoutDetector(originalResinCountRegion.SrcMat);\n        var match = System.Text.RegularExpressions.Regex.Match(cnt1, @\"(\\d+)\\s*[/17]\\s*(2|20|200)\");\n        if (match.Success)\n        {\n            var numericPart = match.Groups[1].Value;\n            status.OriginalResinCount = StringUtils.TryExtractPositiveInt(numericPart, 0);\n        }\n\n        // 2. 浓缩树脂\n        int startX = crop1.X + originalResinRes.Left - (int)(180 * assetScale); // 从原粹树脂图标位置起算\n        var condensedResinTopIconRa = new RecognitionObject\n        {\n            Name = \"CondensedResinTopIcon\",\n            RecognitionType = RecognitionTypes.TemplateMatch,","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/babalae/better-genshin-impact/blob/a7cb36712dcb409be610257d877fcea3597e9d6b/BetterGenshinImpact/GameTask/AutoDomain/Model/ResinStatus.cs#L36-L72","documentation":"Error \"未找到原粹树脂图标\" thrown in babalae/better-genshin-impact.","triggerScenarios":"ResinStatus.RecogniseFromRegion 在屏幕右上角固定裁剪区域内模板匹配原粹树脂图标（original_resin_top_icon.png），匹配结果为空时抛出。","commonSituations":"当前界面不是带树脂栏的秘境挑战确认界面（如界面未打开、被弹窗遮挡），或分辨率/缩放导致图标区域偏移。","solutions":["确认当前游戏界面处于可显示树脂数量的界面（如地图右上角）","检查截图器工作是否正常，游戏画面未被遮挡","调整画质，确保图标清晰可识别"],"exampleFix":"确保在弹出秘境挑战确认（显示树脂数量）的界面执行识别；使用16:9分辨率并让游戏窗口无遮挡。","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a7cb36712dcb409be610257d877fcea3597e9d6b","analyzedAt":"2026-08-13T16:44:57.548Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}