diff --git a/BetterGenshinImpact/Core/Recognition/OcrEngineTypes.cs b/BetterGenshinImpact/Core/Recognition/OcrEngineTypes.cs new file mode 100644 index 00000000..4e64d8e2 --- /dev/null +++ b/BetterGenshinImpact/Core/Recognition/OcrEngineTypes.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BetterGenshinImpact.Core.Recognition +{ + public enum OcrEngineTypes + { + // 通用 + MediaOcr, + + // 特定模型 + YasModel, + YapModel + } +} diff --git a/BetterGenshinImpact/Core/Recognition/RecognitionObject.cs b/BetterGenshinImpact/Core/Recognition/RecognitionObject.cs index 503a77ec..5654ae8f 100644 --- a/BetterGenshinImpact/Core/Recognition/RecognitionObject.cs +++ b/BetterGenshinImpact/Core/Recognition/RecognitionObject.cs @@ -17,7 +17,7 @@ namespace BetterGenshinImpact.Core.Recognition; [Serializable] public class RecognitionObject { - public RecognitionType RecognitionType { get; set; } + public RecognitionTypes RecognitionType { get; set; } /// /// 感兴趣的区域 @@ -115,7 +115,7 @@ public class RecognitionObject /// /// OCR 引擎。可选,默认 Media.Ocr。 /// - public string? OcrEngine { get; set; } + public OcrEngineTypes OcrEngine { get; set; } = OcrEngineTypes.MediaOcr; /// /// 部分文字识别结果不准确,进行替换。可选。 @@ -136,21 +136,4 @@ public class RecognitionObject public List RegexMatchText { get; set; } = new(); #endregion - - - #region 模型OCR识别 - - /// - /// 是否使用模型文字识别 - /// - public bool UseModelTextRecognition { get; set; } = false; - - /// - /// 圣遗物 Yas - /// 拾取 Yap - /// TODO 换成枚举 - /// - public string? ModelTextRecognitionType { get; set; } - - #endregion } \ No newline at end of file diff --git a/BetterGenshinImpact/Core/Recognition/RecognitionType.cs b/BetterGenshinImpact/Core/Recognition/RecognitionTypes.cs similarity index 89% rename from BetterGenshinImpact/Core/Recognition/RecognitionType.cs rename to BetterGenshinImpact/Core/Recognition/RecognitionTypes.cs index 9660af63..c233bc48 100644 --- a/BetterGenshinImpact/Core/Recognition/RecognitionType.cs +++ b/BetterGenshinImpact/Core/Recognition/RecognitionTypes.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace BetterGenshinImpact.Core.Recognition; -public enum RecognitionType +public enum RecognitionTypes { None, TemplateMatch, diff --git a/BetterGenshinImpact/GameTask/AutoFishing/Assets/AutoFishingAssets.cs b/BetterGenshinImpact/GameTask/AutoFishing/Assets/AutoFishingAssets.cs index 71bd9607..428f94b7 100644 --- a/BetterGenshinImpact/GameTask/AutoFishing/Assets/AutoFishingAssets.cs +++ b/BetterGenshinImpact/GameTask/AutoFishing/Assets/AutoFishingAssets.cs @@ -22,7 +22,7 @@ namespace BetterGenshinImpact.GameTask.AutoFishing.Assets SpaceButtonRo = new RecognitionObject { Name = "SpaceButton", - RecognitionType = RecognitionType.TemplateMatch, + RecognitionType = RecognitionTypes.TemplateMatch, TemplateImageMat = GameTaskManager.LoadAssertImage("AutoFishing", "space.png"), RegionOfInterest = new Rect(info.CaptureAreaRect.Width - info.CaptureAreaRect.Width / 3, info.CaptureAreaRect.Height - info.CaptureAreaRect.Height / 5, @@ -34,7 +34,7 @@ namespace BetterGenshinImpact.GameTask.AutoFishing.Assets BaitButtonRo = new RecognitionObject { Name = "BaitButton", - RecognitionType = RecognitionType.TemplateMatch, + RecognitionType = RecognitionTypes.TemplateMatch, TemplateImageMat = GameTaskManager.LoadAssertImage("AutoFishing", "bait.png"), RegionOfInterest = new Rect(info.CaptureAreaRect.Width - info.CaptureAreaRect.Width / 2, info.CaptureAreaRect.Height - info.CaptureAreaRect.Height / 4, @@ -46,7 +46,7 @@ namespace BetterGenshinImpact.GameTask.AutoFishing.Assets WaitBiteButtonRo = new RecognitionObject { Name = "WaitBiteButton", - RecognitionType = RecognitionType.TemplateMatch, + RecognitionType = RecognitionTypes.TemplateMatch, TemplateImageMat = GameTaskManager.LoadAssertImage("AutoFishing", "wait_bite.png"), RegionOfInterest = new Rect(info.CaptureAreaRect.Width - info.CaptureAreaRect.Width / 2, info.CaptureAreaRect.Height - info.CaptureAreaRect.Height / 4, diff --git a/BetterGenshinImpact/GameTask/AutoFishing/AutoFishingTrigger.cs b/BetterGenshinImpact/GameTask/AutoFishing/AutoFishingTrigger.cs index fdf18d8c..4ffaeafb 100644 --- a/BetterGenshinImpact/GameTask/AutoFishing/AutoFishingTrigger.cs +++ b/BetterGenshinImpact/GameTask/AutoFishing/AutoFishingTrigger.cs @@ -113,7 +113,7 @@ namespace BetterGenshinImpact.GameTask.AutoFishing var ro = new RecognitionObject() { Name = "StartFishingText", - RecognitionType = RecognitionType.Ocr, + RecognitionType = RecognitionTypes.Ocr, RegionOfInterest = new Rect(srcMat.Width / 2, srcMat.Height / 2, srcMat.Width - srcMat.Width / 2, srcMat.Height - srcMat.Height / 2), ContainMatchText = new List diff --git a/BetterGenshinImpact/GameTask/AutoPick/Assets/AutoPickAssets.cs b/BetterGenshinImpact/GameTask/AutoPick/Assets/AutoPickAssets.cs index 97ad7e1a..78928191 100644 --- a/BetterGenshinImpact/GameTask/AutoPick/Assets/AutoPickAssets.cs +++ b/BetterGenshinImpact/GameTask/AutoPick/Assets/AutoPickAssets.cs @@ -19,7 +19,7 @@ namespace BetterGenshinImpact.GameTask.AutoPick.Assets FRo = new RecognitionObject { Name = "F", - RecognitionType = RecognitionType.TemplateMatch, + RecognitionType = RecognitionTypes.TemplateMatch, TemplateImageMat = GameTaskManager.LoadAssertImage("AutoPick", "F.png"), RegionOfInterest = new Rect(info.CaptureAreaRect.Width / 2, info.CaptureAreaRect.Height / 3, diff --git a/BetterGenshinImpact/GameTask/AutoSkip/Assets/AutoSkipAssets.cs b/BetterGenshinImpact/GameTask/AutoSkip/Assets/AutoSkipAssets.cs index 81e2471a..d6269127 100644 --- a/BetterGenshinImpact/GameTask/AutoSkip/Assets/AutoSkipAssets.cs +++ b/BetterGenshinImpact/GameTask/AutoSkip/Assets/AutoSkipAssets.cs @@ -15,7 +15,7 @@ public class AutoSkipAssets StopAutoButtonRo = new RecognitionObject { Name = "StopAutoButton", - RecognitionType = RecognitionType.TemplateMatch, + RecognitionType = RecognitionTypes.TemplateMatch, TemplateImageMat = GameTaskManager.LoadAssertImage("AutoSkip", "stop_auto.png"), RegionOfInterest = new Rect(0, 0, info.CaptureAreaRect.Width / 5, info.CaptureAreaRect.Height / 5), DrawOnWindow = true @@ -24,7 +24,7 @@ public class AutoSkipAssets OptionButtonRo = new RecognitionObject { Name = "OptionButton", - RecognitionType = RecognitionType.TemplateMatch, + RecognitionType = RecognitionTypes.TemplateMatch, TemplateImageMat = GameTaskManager.LoadAssertImage("AutoSkip", "option.png"), RegionOfInterest = new Rect(info.CaptureAreaRect.Width / 2, 0, info.CaptureAreaRect.Width - info.CaptureAreaRect.Width / 2, info.CaptureAreaRect.Height), DrawOnWindow = false @@ -33,7 +33,7 @@ public class AutoSkipAssets MenuRo = new RecognitionObject { Name = "Menu", - RecognitionType = RecognitionType.TemplateMatch, + RecognitionType = RecognitionTypes.TemplateMatch, TemplateImageMat = GameTaskManager.LoadAssertImage("AutoSkip", "menu.png"), RegionOfInterest = new Rect(0, 0, info.CaptureAreaRect.Width / 4, info.CaptureAreaRect.Height / 4), DrawOnWindow = false diff --git a/BetterGenshinImpact/GameTask/Model/RectArea.cs b/BetterGenshinImpact/GameTask/Model/RectArea.cs index f5a112b9..05d5db48 100644 --- a/BetterGenshinImpact/GameTask/Model/RectArea.cs +++ b/BetterGenshinImpact/GameTask/Model/RectArea.cs @@ -228,7 +228,7 @@ public class RectArea throw new Exception("识别对象不能为null"); } - if (RecognitionType.TemplateMatch.Equals(ro.RecognitionType)) + if (RecognitionTypes.TemplateMatch.Equals(ro.RecognitionType)) { if (ro.TemplateImageGreyMat == null) { @@ -265,7 +265,7 @@ public class RectArea return new RectArea(); } } - else if (RecognitionType.Ocr.Equals(ro.RecognitionType)) + else if (RecognitionTypes.Ocr.Equals(ro.RecognitionType)) { if (ro.ContainMatchText.Count == 0 && ro.RegexMatchText.Count == 0) { diff --git a/BetterGenshinImpact/GameTask/RecognitionTest/TestTrigger.cs b/BetterGenshinImpact/GameTask/RecognitionTest/TestTrigger.cs index b6c2ce4e..e8068b9a 100644 --- a/BetterGenshinImpact/GameTask/RecognitionTest/TestTrigger.cs +++ b/BetterGenshinImpact/GameTask/RecognitionTest/TestTrigger.cs @@ -27,7 +27,7 @@ namespace BetterGenshinImpact.GameTask.RecognitionTest _optionButtonRo = new RecognitionObject { Name = "OptionButton", - RecognitionType = RecognitionType.TemplateMatch, + RecognitionType = RecognitionTypes.TemplateMatch, TemplateImageMat = GameTaskManager.LoadAssertImage("AutoSkip", "option.png"), DrawOnWindow = true }.InitTemplate();