Пример #1
0
        private void btnGenerate_Click(object sender, EventArgs e)
        {
            foreach (var item in state.Run)
            {
                var action = new GameImageMatchAction();
                action.SplitName = item.Name;
                action.Type      = GameImageMatchActionType.SplitOnMatch;

                var currentDirectory     = System.IO.Directory.GetCurrentDirectory();
                var sourceImagePath      = System.IO.Path.Combine(currentDirectory, JsonBasedActionRepositoryProvider.RepositoriesFolder, this.state.Run.GameName, item.Name + ".png");
                var splitComparisonImage = new SplitComparisonImage(sourceImagePath);
                action.ComparisonImages.Add(splitComparisonImage);
                this.actionList.Items.Add(Map(action));
                repo.Store(action);
            }
        }
Пример #2
0
        public float GetMatchPercent(IMaskedGameImage gameImage, SplitComparisonImage splitImage)
        {
            try
            {
                if (gameImage.Image == null || splitImage.SourceImage == null)
                {
                    return(0);
                }
                //var difference = new Difference(splitImage.SourceImage);
                //var imageDiff = difference.Apply(gameImage.Frame);
                //var final = imageDiff;
                var image1 = gameImage.Image;
                var image2 = splitImage.SourceImage;

                ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0);
                // compare two images
                TemplateMatch[] matchings = tm.ProcessImage(image1, image2);

                if (matchings.Length == 0)
                {
                    return(0);
                }

                //// check similarity level
                //if (matchings[0].Similarity > 0.97f)
                //{
                //    image1.Save("c:\\debug_image2.png", ImageFormat.Png);
                //    // do something with quite similar images
                //}

                return(matchings[0].Similarity);
            }
            catch
            {
                return(0);
            }
        }
Пример #3
0
 public bool IsMatch(IMaskedGameImage gameImage, SplitComparisonImage splitImage, float minPercent)
 {
     return(GetMatchPercent(gameImage, splitImage) >= minPercent);
 }