示例#1
0
        public MatchImageResult MatchImageFlipUpDown(Mat viewportMat, RECT viewportRect, Vec4f exRectRate, string exName, double threshold)
        {
            var exRectMat     = viewportMat.GetChildMatByRectRate(exRectRate);
            var exImgMat      = ConfigMgr.GetInstance().GetPCRExImg(exName, viewportMat, viewportRect);
            var exRectFlipMat = new Mat();
            var exImgFlipMat  = new Mat();

            Cv2.Flip(exRectMat, exRectFlipMat, FlipMode.XY);
            Cv2.Flip(exImgMat, exImgFlipMat, FlipMode.XY);
            var flipMatchRes    = GraphicsTools.GetInstance().MatchImage(exRectFlipMat, exImgFlipMat, threshold);
            var flipMatchedRect = flipMatchRes.MatchedRect;
            var rectWidth       = exRectMat.Width;
            var rectHeight      = exRectMat.Height;
            var matchRes        = new MatchImageResult()
            {
                Success     = flipMatchRes.Success,
                MatchedRect = new RECT()
                {
                    x1 = rectWidth - flipMatchedRect.x2,
                    y1 = rectHeight - flipMatchedRect.y2,
                    x2 = rectWidth - flipMatchedRect.x1,
                    y2 = rectHeight - flipMatchedRect.y1,
                }
            };

            return(matchRes);
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="viewportMat"></param>
        /// <param name="viewportRect"></param>
        /// <param name="exRectRate">采样区域</param>
        /// <param name="exName"></param>
        /// <returns></returns>
        public MatchImageResult MatchImage(Mat viewportMat, RECT viewportRect, Vec4f exRectRate, string exName, double threshold)
        {
            var exRectMat = viewportMat.GetChildMatByRectRate(exRectRate);
            var exImgMat  = ConfigMgr.GetInstance().GetPCRExImg(exName, viewportMat, viewportRect);
            var matchRes  = GraphicsTools.GetInstance().MatchImage(exRectMat, exImgMat, threshold);

            return(matchRes);
        }