Exemple #1
0
 /// <summary>
 ///     输出调试信息(仅在开启了<see cref="MatchArgument.ConsoleOutput"/>配置时)
 /// </summary>
 /// <param name="argument"></param>
 /// <param name="message"></param>
 internal static void OutputDebugMessage(this MatchArgument argument, string message)
 {
     if (argument.IsExtensionConfigEnabled(MatchArgument.ConsoleOutput))
     {
         Console.WriteLine("[ConsoleOutput] " + message);
     }
 }
Exemple #2
0
        /// <summary>
        ///     预览模版匹配结果(仅在开启了<see cref="MatchArgument.PreviewMatchResult"/>配置时)
        /// </summary>
        /// <param name="argument"></param>
        /// <param name="matchResult"></param>
        /// <param name="sourceImage"></param>
        internal static void PreviewDebugTemplateMatchResult(this MatchArgument argument, TemplateMatchResult matchResult, Mat sourceImage)
        {
            if (!argument.IsExtensionConfigEnabled(MatchArgument.PreviewMatchResult))
            {
                return;
            }

            using var image = new Mat(sourceImage, OpenCvSharp.Range.All);
            if (matchResult.Success)
            {
                foreach (var matchItem in matchResult.MatchItems)
                {
                    var rectangle = matchItem.Rectangle;
                    Cv2.Rectangle(image, new Point(rectangle.X, rectangle.Y), new Point(rectangle.Right, rectangle.Bottom), Scalar.RandomColor(), 3);
                }
            }
            PreviewMatchResultImage(image);
        }
Exemple #3
0
        /// <summary>
        ///     预览匹配结果(仅在开启了<see cref="MatchArgument.PreviewMatchResult"/>配置时)
        /// </summary>
        /// <param name="argument"></param>
        /// <param name="matchResult"></param>
        /// <param name="sourceMat"></param>
        /// <param name="searchMat"></param>
        /// <param name="keySourcePoints"></param>
        /// <param name="keySearchPoints"></param>
        /// <param name="goodMatches"></param>
        internal static void PreviewDebugFeatureMatchResult(this MatchArgument argument, FeatureMatchResult matchResult, Mat sourceMat, Mat searchMat,
                                                            IEnumerable <KeyPoint> keySourcePoints, IEnumerable <KeyPoint> keySearchPoints,
                                                            IEnumerable <DMatch> goodMatches)
        {
            if (!argument.IsExtensionConfigEnabled(MatchArgument.PreviewMatchResult))
            {
                return;
            }

            using var image = new Mat(sourceMat, OpenCvSharp.Range.All);
            if (matchResult.Success)
            {
                foreach (var matchItem in matchResult.MatchItems)
                {
                    var rectangle = matchItem.Rectangle;
                    Cv2.Rectangle(image, new Point(rectangle.X, rectangle.Y), new Point(rectangle.Right, rectangle.Bottom), Scalar.RandomColor(), 3);
                }
            }

            using var imgMatch = new Mat();
            Cv2.DrawMatches(image, keySourcePoints, searchMat, keySearchPoints, goodMatches, imgMatch, flags: DrawMatchesFlags.NotDrawSinglePoints);
            PreviewMatchResultImage(imgMatch);
        }