当前位置:编程学习 > C#/ASP.NET >>

求解调用微软MODI进行OCR识别抛出“OCR running error”问题,求指教!

我现在可以进行OCR识别,但有一个问题:当我选择的识别区域较小(或者说文字较少)时,抛出错误信息“OCR running error”,不知道是什么原因,有人说是电脑因素(我的开发环境:VS2008+Office2007+sp2补丁),有的说截取图像要作处理,不知道原因为何、、我想要的效果是:即便选择一个汉字或数字也可以进行识别!
我的识别关键代码:

//创建一个临时文件
  string strFileName =string.Format("{0:yyyy_MM_dd_HH_mm_ss_ffff}", DateTime.Now) + ".tif";
  try
  {
  //位图对象保存到一个TIFF文件
  m_obj.Save(strFileName, ImageFormat.Tiff);

  //实例化MODI.Document对象
  MODI.Document md = new MODI.Document();
  md.Create(strFileName);

  //运行OCR
  md.OCR(MODI.MiLANGUAGES.miLANG_CHINESE_SIMPLIFIED, true, true); //定义要识别的语言种类
  //这个字符串将包含文本
  string strText = String.Empty;

  //获得第一个图片
  MODI.Image image = (MODI.Image)md.Images[0];
  //获取布局
  MODI.Layout layout = image.Layout;

  //遍历文字
  for (int j = 0; j < layout.Words.Count; j++)
  {
  //得到文字
  MODI.Word word = (MODI.Word)layout.Words[j];
  // 添加一个空格来分隔文字
  if (strText.Length > 0)
  {
  strText += " ";
  }
  //添加文字
  strText += word.Text;
  }
  //关闭对象
  layout = null;
  image = null;
  md.Close(false);
  md = null;
  GC.Collect();
  GC.WaitForPendingFinalizers();

  //创建对话框显示文本的文本识别
  ShowText st = new ShowText();
  //该对话框的文本
  st.m_strOCRText = strText;
  //显示的对话框
  st.ShowDialog();
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.Message.toString());   
  }
  try
  {
  //删除临时文件
  File.Delete(strFileName);   
  }
  catch{ }
--------------------编程问答-------------------- 我在XP和win7环境下都作了测试,可是问题还是依然,是不是我还有哪些配置没有设置? 求顶! --------------------编程问答-------------------- 把你要识别的图像区域放在一个定尺寸的图像中,比如500*750 的尺寸,然后对图像进行处理一下,比如纯色处理,锐化处理,这样可以提高识别度! --------------------编程问答-------------------- 可是我要的是即便选择一个字符也能识别,不是特定范围内的某个尺寸大小。
引用 2 楼  的回复:
把你要识别的图像区域放在一个定尺寸的图像中,比如500*750 的尺寸,然后对图像进行处理一下,比如纯色处理,锐化处理,这样可以提高识别度!
--------------------编程问答-------------------- 看来你没理解,MODI  识别失败是因为你输入的图像尺寸过小,为了规避这个问题,你每次给MODI识别的图像要超过一定的尺寸,我没有认真测试过,但是每次识别的图片尺寸在大于500*750的文字图片都是成功的。所以我想你可以这让测试,假定一个带是别的图片只有一个英文字符,把这个图片的尺寸变成500*750的,然后给MODI试试看能不能识别成功!如果成功,那么你的思路就有了! --------------------编程问答-------------------- 可以识别了,可是给客户配置运行环境应该怎么配置呢
引用 4 楼  的回复:
看来你没理解,MODI  识别失败是因为你输入的图像尺寸过小,为了规避这个问题,你每次给MODI识别的图像要超过一定的尺寸,我没有认真测试过,但是每次识别的图片尺寸在大于500*750的文字图片都是成功的。所以我想你可以这让测试,假定一个带是别的图片只有一个英文字符,把这个图片的尺寸变成500*750的,然后给MODI试试看能不能识别成功!如果成功,那么你的思路就有了!
--------------------编程问答-------------------- 共享一下你的代码包!!可以吗??? --------------------编程问答--------------------
引用 5 楼 cjwlz 的回复:
可以识别了,可是给客户配置运行环境应该怎么配置呢[Quote=引用 4 楼  的回复:]

看来你没理解,MODI  识别失败是因为你输入的图像尺寸过小,为了规避这个问题,你每次给MODI识别的图像要超过一定的尺寸,我没有认真测试过,但是每次识别的图片尺寸在大于500*750的文字图片都是成功的。所以我想你可以这让测试,假定一个带是别的图片只有一个英文字符,把这个图片的尺寸变成500*750的,然后给MODI试试看能不能识别成功!如果成功,那么你的思路就有了!


楼主怎么解决的?一个英文字母也能识别么 --------------------编程问答-------------------- 你好我遇到和你一样的问题,请问你解决了吗 求解
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,