EndTesseractHandle() private method

private EndTesseractHandle ( IntPtr tesseractHandle ) : void
tesseractHandle IntPtr
return void
示例#1
0
 /// <summary>
 /// Library cleanup
 /// </summary>
 public void Dispose()
 {
     if(m_Handle != IntPtr.Zero)
     {
         TesseractOCRBridge.EndTesseractHandle(m_Handle);
         TesseractOCRBridge.DeleteTesseractHandle(m_Handle);
         m_Handle = IntPtr.Zero;
     }
 }
        /// <summary>
        /// Initializes tesseract's configuration list
        /// </summary>
        private void InitializeTesseractConfiguration()
        {
            IntPtr handle = TesseractOCRBridge.CreateTesseractHandle();

            if(TesseractOCRBridge.Initialize(handle, Application.persistentDataPath + "/tessdata", "eng") == 0)
            {
                TesseractOCRBridge.PrintVariablesToFile(handle, "config");
            }

            TesseractOCRBridge.EndTesseractHandle(handle);
            TesseractOCRBridge.DeleteMonitorHandle(handle);

            string defaultConfigPath = Path.Combine(Directory.GetCurrentDirectory(), "config");

            if(File.Exists(defaultConfigPath))
            {
                string[] lines = File.ReadAllLines(defaultConfigPath);

                m_TesseractDefaultConfigInfo = new TesseractConfigInfo[lines.Length];

                for(int i = 0; i < lines.Length; i++)
                {
                    string[] split = lines[i].Split('\t');
                    m_TesseractDefaultConfigInfo[i] = new TesseractConfigInfo()
                    {
                        name = split[0],
                        value = split[1],
                        description = split[2]
                    };
                }

                IComparer<TesseractConfigInfo> comparer = new AscendingCompare();
                Array.Sort<TesseractConfigInfo>(m_TesseractDefaultConfigInfo, comparer);

                int defaultConfigLen = m_TesseractDefaultConfigInfo.Length;
                m_TesseractConfigInfo = new TesseractConfigInfo[defaultConfigLen];
                Array.Copy(m_TesseractDefaultConfigInfo, m_TesseractConfigInfo, defaultConfigLen);

                File.Delete(defaultConfigPath);
            }

            string userDefinedConfigPath = "Assets/StreamingAssets/tessdata/configs";

            if(Directory.Exists(userDefinedConfigPath))
            {
                string[] configs = Directory.GetFiles(userDefinedConfigPath, "*.", SearchOption.TopDirectoryOnly);

                if(configs.Length == 1)
                {
                    string[] lines = File.ReadAllLines(configs[0]);

                    for(int i = 0; i < lines.Length; i++)
                    {
                        string[] split = lines[i].Split('\t');
                        int index = Array.FindIndex<TesseractConfigInfo>(m_TesseractConfigInfo, a => a.name == split[0]);

                        if(index >= 0)
                        {
                            m_TesseractConfigInfo[index].value = split[1];
                        }
                    }

                    IComparer<TesseractConfigInfo> comparer = new AscendingCompare();
                    Array.Sort<TesseractConfigInfo>(m_TesseractDefaultConfigInfo, comparer);
                }
            }
        }