日期:2014-05-17  浏览次数:21495 次

调用微软MODI文字识别,OCR running error问题
我能进行OCR识别了,但有一个问题:当我选择的识别区域较小(或者说文字较少)时,抛出错误信息“OCR running error”,不知道是什么原因,有人说是电脑因素,有的说截取图像要作处理,我想要的效果是:即便选择一个汉字或数字也可以进行识别。希望各位高手指点一下!
我的识别关键代码:
C# code
//创建一个临时文件
  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{ }


------解决方案--------------------
使用win 7 office 2007的时必须打上office 2007 sp1或者sp2补丁