private void LoadMatchPages() { string[] directoryEntries = Directory.GetDirectories(MatchPagesDirectory); foreach (var f in directoryEntries) { string directoryName = Utils.GetFileNameInFullEntry(f, true); Console.WriteLine(directoryName + " " + f); string pageName = directoryName; var matchPage = new MatchPage(f, pageName); _matchPages.Add(pageName, matchPage); foreach (var p in matchPage.UIRects) { _allUIRects[p.Key] = p.Value; } } directoryEntries = Directory.GetDirectories(SlicedPagesDirectory); foreach (var f in directoryEntries) { string directoryName = Utils.GetFileNameInFullEntry(f, true); Console.WriteLine(directoryName + " " + f); string pageName = directoryName; var matchPage = new SlicedPage(f, pageName); _slicedPages.Add(pageName, matchPage); } }
private void ScoreAllSlicedPages(Mat mat, int wndX, int wndY, int wndWidth, int wndHeight) { DateTime start = DateTime.Now; string mainLog = "--------------------------ScoreAllSlicedPages-----------------------------\n"; string maxPageName = Globals.UnknownPage; double maxSimilarity = 0.0f; double dissimilarity; double similarity; string log; SlicedPage maxPage = null; foreach (var p in _slicedPages) { p.Value.PageScore(wndX, wndY, out dissimilarity, out similarity, out log, true); if (_log) { mainLog += log; } if (similarity > maxSimilarity) { maxSimilarity = similarity; maxPageName = p.Value.PageName; } p.Value.RenderKeyPoints(); } /*if (RenderImageProcess) * { * if (maxPage != null) * { * maxPage.RenderKeyPoints(); * } * } * else * { * Cv2.DestroyWindow(Globals.ImShowMaxSlicedPageName); * Cv2.DestroyWindow(Globals.ImShowCurrentSlicedPageName); * }*/ DateTime end = DateTime.Now; var time = (end - start).TotalMilliseconds; /* * if (maxSimilarity > 250.0f) * { * ChangePage(maxPageName); * } * else * { * ChangePage(Globals.UnknownPage); * } */ if (_log /*&& _prevPageName != _currentPageName*/) { mainLog += "\n[" + maxPageName + "] maxSimilarity : " + maxSimilarity + " total time : " + time + "\n"; mainLog += "-------------------------------------------------------------------------\n\n"; Console.WriteLine(mainLog); } }