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

cjwlz 2012-10-10 09:03:53
我现在可以进行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{ }
...全文
976 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
nguoer121 2015-05-29
  • 打赏
  • 举报
回复
楼主,请问你这样调用ocr识别时,大量图片进行识别时,你有内存泄露的问题吗
飘起来了 2015-03-12
  • 打赏
  • 举报
回复
这尼马,还真是要500x750以上
yeahcn3 2014-09-15
  • 打赏
  • 举报
回复
使用png,不使用tiff格式图像。
kekeker 2013-08-14
  • 打赏
  • 举报
回复
你好我遇到和你一样的问题,请问你解决了吗 求解
PowerWinYon 2013-07-18
  • 打赏
  • 举报
回复
引用 5 楼 cjwlz 的回复:
可以识别了,可是给客户配置运行环境应该怎么配置呢[Quote=引用 4 楼 的回复:] 看来你没理解,MODI 识别失败是因为你输入的图像尺寸过小,为了规避这个问题,你每次给MODI识别的图像要超过一定的尺寸,我没有认真测试过,但是每次识别的图片尺寸在大于500*750的文字图片都是成功的。所以我想你可以这让测试,假定一个带是别的图片只有一个英文字符,把这个图片的尺寸变成500*750的,然后给MODI试试看能不能识别成功!如果成功,那么你的思路就有了! [/Quote]
楼主怎么解决的?一个英文字母也能识别么
JiangBo 2012-12-07
  • 打赏
  • 举报
回复
共享一下你的代码包!!可以吗???
cjwlz 2012-10-25
  • 打赏
  • 举报
回复
可以识别了,可是给客户配置运行环境应该怎么配置呢[Quote=引用 4 楼 的回复:]

看来你没理解,MODI 识别失败是因为你输入的图像尺寸过小,为了规避这个问题,你每次给MODI识别的图像要超过一定的尺寸,我没有认真测试过,但是每次识别的图片尺寸在大于500*750的文字图片都是成功的。所以我想你可以这让测试,假定一个带是别的图片只有一个英文字符,把这个图片的尺寸变成500*750的,然后给MODI试试看能不能识别成功!如果成功,那么你的思路就有了!
[/Quote]
cjwlz 2012-10-11
  • 打赏
  • 举报
回复
可是我要的是即便选择一个字符也能识别,不是特定范围内的某个尺寸大小。[Quote=引用 2 楼 的回复:]

把你要识别的图像区域放在一个定尺寸的图像中,比如500*750 的尺寸,然后对图像进行处理一下,比如纯色处理,锐化处理,这样可以提高识别度!
[/Quote]
Rabit9556 2012-10-11
  • 打赏
  • 举报
回复
看来你没理解,MODI 识别失败是因为你输入的图像尺寸过小,为了规避这个问题,你每次给MODI识别的图像要超过一定的尺寸,我没有认真测试过,但是每次识别的图片尺寸在大于500*750的文字图片都是成功的。所以我想你可以这让测试,假定一个带是别的图片只有一个英文字符,把这个图片的尺寸变成500*750的,然后给MODI试试看能不能识别成功!如果成功,那么你的思路就有了!
cjwlz 2012-10-10
  • 打赏
  • 举报
回复
我在XP和win7环境下都作了测试,可是问题还是依然,是不是我还有哪些配置没有设置? 求顶!
Rabit9556 2012-10-10
  • 打赏
  • 举报
回复
把你要识别的图像区域放在一个定尺寸的图像中,比如500*750 的尺寸,然后对图像进行处理一下,比如纯色处理,锐化处理,这样可以提高识别度!

111,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧