找回密码
 立即注册

QQ登录

只需一步,快速开始

druidAAAA
注册会员   /  发表于:2017-1-13 14:52:11
11#
Richard.Ma 发表于 2017-1-13 14:39
如果是要得到文档的话,可以选择保存为想要的格式的文档
如果只是要得到文字结果的话可以参考\LEADTOOLS 1 ...

不要文档, 我只要读取出string, 因为我的程序需要1秒扫描10次左右, 需要效率.
我把源代码发上来啦, 在上面
请过目
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-1-13 15:15:01
12#
druidAAAA 发表于 2017-1-13 14:52
不要文档, 我只要读取出string, 因为我的程序需要1秒扫描10次左右, 需要效率.
我把源代码发上来啦, 在上 ...

这边测试了确实有问题,我这边之前用的是.net3.5  x64的没有问题,错误原因暂时未知

如我刚才给你发的,如果只是需要取出string的话,可以使用
ocrPage.GetRecognizedCharacters()[0].GetWords()[0].Value;
当然这个只是取出了第一个,全取出来的话需要foreach遍历,这样效率也高
回复 使用道具 举报
druidAAAA
注册会员   /  发表于:2017-1-13 19:36:27
13#
Richard.Ma 发表于 2017-1-13 15:15
这边测试了确实有问题,我这边之前用的是.net3.5  x64的没有问题,错误原因暂时未知

如我刚才给你发的 ...

这个方法的确比我的更快, 更好. 先多谢.
然而..
为什么我又要说然而....
我都快疯了
对于附件的图片1
Advantage Engin    识别出来的是 "angyangy104"
Professional Engin  识别出来的是 "an.an.104"

---------------------------------------------------------------------------------------------------------------
识别代码如下:
public string Read(System.IO.MemoryStream img)
        {
            // Create an OCR document
            using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument())
            {
                // Add a page to the document
                img.Position = 0;
                IOcrPage ocrPage = ocrDocument.Pages.AddPage(img, null);
               
                ocrPage.Recognize(null);


                // 这里是版主教的新方法
                string rsl = "";
                IOcrPageCharacters chars = ocrPage.GetRecognizedCharacters();
                if (chars.Count > 0) // 因为我的字符只有一行, 所以不遍历所有
                {
                    foreach (OcrWord words in chars[0].GetWords())
                        rsl += words.Value;
                }


                return rsl;




                /* // 这里是以前存为Document的方法
                System.IO.MemoryStream stream = new System.IO.MemoryStream();
                ocrDocument.Save(stream, DocumentFormat.Text, null);


                byte[] buff = stream.ToArray();
                string rsl = System.Text.Encoding.Default.GetString(buff);


                return rsl;
                */
            }
        }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-1-16 10:10:56
14#
把你的识别方法代码加入了程序中,用Professional Engin识别你的图片得出的结果也是正确的,你这边识别出带标点的结果是否是其他的问题
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部