首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tesseract Init()方法C3

Tesseract Init()方法C3
EN

Stack Overflow用户
提问于 2013-12-13 12:24:47
回答 1查看 3.8K关注 0票数 2

我在c# .net 4.5中使用Tesseract 2,只要代码到达OCR.InIt()方法,它就会从代码中出来,程序就会停止执行。即使Catch块也不保存代码。请告诉我如何检查这个问题。

代码语言:javascript
复制
Bitmap image = new Bitmap(ofd_OpenPhoto.FileName);
tessnet2.Tesseract ocr = new tessnet2.Tesseract();
ocr.Init("C:\\tessnet2\\tesseract-ocr\\tessdata", "eng", false);

请告诉我,如何使用Init()方法,我应该删除null吗?

代码语言:javascript
复制
private void btn_Browse_Click(object sender, EventArgs e)
        {
            ofd_OpenPhoto.Multiselect = false;
            ofd_OpenPhoto.RestoreDirectory = true;
            ofd_OpenPhoto.SupportMultiDottedExtensions = false;
            ofd_OpenPhoto.FileName = "";
            ofd_OpenPhoto.Title = "Select Photo";
            ofd_OpenPhoto.Filter = "Photo Files (*.jpg)|*.jpg";

            DialogResult result = ofd_OpenPhoto.ShowDialog();

            if (result == System.Windows.Forms.DialogResult.OK)
            {
                string file_name;
                if (ofd_OpenPhoto.FileName != null)
                {
                    try
                    {
                        file_name = ofd_OpenPhoto.FileName.Substring(ofd_OpenPhoto.FileName.LastIndexOf("\\") + 1);
                        txt_PhotoPath.Text = file_name.Substring(0, file_name.LastIndexOf("."));

                        Emgu.CV.Image<Bgr, Byte> img_o = new Emgu.CV.Image<Bgr, byte>(ofd_OpenPhoto.FileName);
                        pb_PhotoViewer_O.Image = img_o.ToBitmap();
                        if (pb_PhotoViewer_O.Image != null)
                        {
                            try
                            {
                                Bitmap image = new Bitmap(ofd_OpenPhoto.FileName);
                                tessnet2.Tesseract ocr = new tessnet2.Tesseract();
                                ocr.SetVariable("tessedit_char_whitelist", "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
                                ocr.Init(@"C:\\Program Files (x86)\\Tesseract-OCR", "eng", false);
                                List<tessnet2.Word> result1 = ocr.DoOCR(image, Rectangle.Empty);
                                txt_ExtractedNumber.Text = result1.ToString();
                            }
                            catch (Exception ex)
                            {

                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        //e.Message();
                    }
                }
            }
        }

这是我的密码。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-12-13 14:28:09

如果您编写ocr.Init("C:\\tessnet2\\tesseract-ocr\\tessdata", "eng", false);,那么在C:\tessnet2 2\tesseract-ocr\tessdata目录下必须有下一个文件:

  • eng.DangAmbigs
  • eng.freq-dawg
  • eng.inttemp
  • eng.normproto
  • eng.pffmtable
  • eng.unicharset
  • eng.user-words
  • eng.word-dawg

还必须检查是否删除了Windows环境变量( TESSDATA_PREFIX )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20566474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档