首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

调用微软MODI进行OCR图片文字识别有关问题

2012-09-06 
调用微软MODI进行OCR图片文字识别问题现在我可以进行OCR图片文字识别了,但是有一个问题:当我选择的识别区

调用微软MODI进行OCR图片文字识别问题
现在我可以进行OCR图片文字识别了,但是有一个问题:当我选择的识别区域较小时(经测试识别区域内少于8个汉字或数字时),将不能进行识别了,我想要的效果是:即便选择一个汉字或数字也可以进行识别。求代码~
附上我的关键代码:

C# code
                //创建一个临时文件                string strFileName =string.Format("{0:yyyy_MM_dd_HH_mm_ss_ffff}", DateTime.Now) + ".tif";                try                {                    //位图对象保存到一个TIFF文件                    Console.WriteLine(m_obj.PixelFormat.ToString());                    m_obj.Save(strFileName, ImageFormat.Tiff);                    m_obj.Dispose();                    //实例化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;                    }                    //关闭MODI.Document对象                    md.Close(false);                    //创建对话框显示文本的文本识别                    ShowText st = new ShowText();                    //该对话框的文本                    st.m_strOCRText = strText;                    //显示的对话框                    st.ShowDialog();                }                catch (Exception)                {                    MessageBox.Show("识别区域不低于9个字符!", "提示");    //我要的是即便一个字符也可以识别                }                try                {                    //删除临时文件                    File.Delete(strFileName);                             }                catch{ }


[解决办法]
那个是国际时差吧 应该和程序设定的默认国际时间有关
不行你就给时间加八小时 再计算呗
[解决办法]
这个根本不存在识别个数的限制
后台绘制个矩形,为识别指定区域即可
这样即使是个半个汉字也能识别

热点排行