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); }
/// <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); }