예제 #1
0
 public void Error(string msg, bool writeIntoFile)
 {
     richText?.AppendLineThreadSafe(msg, Color.Red);
     if (writeIntoFile)
     {
         AppendIntoFile(ConfigMgr.GetInstance().ErrorLogPath, msg);
     }
 }
예제 #2
0
        public void Error(Exception ex)
        {
            var msg = ex.InnerException?.Message ?? ex.Message;

            richText?.AppendLineThreadSafe(msg, Color.Red);
            if (IsSelfOrChildrenNoTrackTraceException(ex))
            {
                return;
            }
            AppendIntoFile(ConfigMgr.GetInstance().ErrorLogPath, msg);
        }
예제 #3
0
        public void DisplayImage(string key, Mat mat)
        {
            var cacheDir  = ConfigMgr.GetInstance().CacheDir;
            var storePath = Tools.GetInstance().JoinPath(cacheDir, $"{key}.png");

            if (key == "DoCapture")
            {
                mat.SaveImage(storePath);
            }
            else
            {
                //Cv2.ImShow(key, mat);
                mat.SaveImage(storePath);
            }
        }
예제 #4
0
        public string OCRWithTesseract(Mat mat, string lans)
        {
            var configMgr          = ConfigMgr.GetInstance();
            var randStr            = DateTime.Now.ToString("yyMMddHHmmssffff") + mat.GetHashCode().ToString();
            var tempImgStorePath   = configMgr.GetCacheFileFullPath($"tesseract_{randStr}.png");
            var resName            = $"tesseract_result_{randStr}";
            var tempResPathForTess = configMgr.GetCacheFileFullPath($"{resName}");
            var tempResStorePath   = configMgr.GetCacheFileFullPath($"{resName}.txt");

            mat.SaveImage(tempImgStorePath);
            var tesseratPath = ConfigMgr.GetInstance().TesseractPath;
            var startInfo    = new ProcessStartInfo()
            {
                FileName    = tesseratPath,
                Arguments   = string.Format("{0} {1} -l {2} --psm 6", tempImgStorePath, tempResPathForTess, lans),
                WindowStyle = ProcessWindowStyle.Hidden,
                //RedirectStandardOutput = true,
                //RedirectStandardError = true,
                //UseShellExecute = false,
            };
            var s = "";

            try
            {
                var proc = Process.Start(startInfo);
                proc.WaitForExit();
                //var output = proc.StandardOutput.ReadToEnd();
                //var error = proc.StandardError.ReadToEnd();
                s = File.ReadAllText(tempResStorePath);
                s = FilterTesseractResult(s);
                LogTools.GetInstance().Info("OCR:" + s);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                File.Delete(tempImgStorePath);
                File.Delete(tempResStorePath);
            }
            return(s);
        }
예제 #5
0
 public string GetAdbServerExePath()
 {
     return(ConfigMgr.GetInstance().AdbServerExePath);
 }
예제 #6
0
 public string OCRWithTesseract(Mat mat)
 {
     return(OCRWithTesseract(mat, ConfigMgr.GetInstance().OCRLans));
 }
예제 #7
0
 public string OCRWithTesseract(Bitmap bitmap)
 {
     return(OCRWithTesseract(bitmap.ToOpenCvMat(), ConfigMgr.GetInstance().OCRLans));
 }