Foxtable(狐表)用户栏目专家坐堂 → [求助]使用office2007 OCR组件识别文字后的分段问题


  共有3251人关注过本帖树形打印复制链接

主题:[求助]使用office2007 OCR组件识别文字后的分段问题

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]使用office2007 OCR组件识别文字后的分段问题  发帖心情 Post By:2018/6/28 16:00:00 [只看该作者]

通过测试,发现直接运行Office2007 OCR 图文识别组件-- Microsoft Office Document Imaging进行文字识别后,结果中产生了分行符(软回车),如果把分行符替换为换行符(硬回车),那么就把识别的文字进行了分段。

请老师看一下第二段代码怎样修改?

谢谢!

图1,测试的原始图片: 


此主题相关图片如下:360截图20180628153012940.jpg
按此在新窗口浏览图片
图2,直接运行Microsoft Office Document Imaging组件进行识别的结果(识别后存在软回车): 


此主题相关图片如下:image 1.jpg
按此在新窗口浏览图片

 

1、foxtable运用的识别代码:

Dim doc = CreateObject("MODI.Document")
doc.Create("d:\test.jpg")
doc.OCR(2052, True, True)
Dim layout = doc.images(0).Layout
'msgbox(layout.text)

 

2、识别后将软回车替换为硬回车vbcrlf?

Dim str As String = layout.text

Dim ary() = str.replace(chr(10), "").split(new Char() {chr(13),chr(11)})    '清除段落空行


Dim ls As new List(Of String)
For Each s As String In ary    
    If s.trim() > "" Then
        ls.add(s)
    End If

    msgbox()
Next


 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/28 17:21:00 [只看该作者]

这个意思?改成

 

Dim ary() = str.split(new Char() {chr(13),chr(11),chr(10)})    '清除段落空行


 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:962 积分:8505 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2018/6/28 17:48:00 [只看该作者]

两处显示的没变化。
还有解吗?

Dim doc = CreateObject("MODI.Document")
doc.Create("d:\test.jpg")
doc.OCR(2052, True, True)
Dim layout = doc.images(0).Layout
msgbox(layout.text)

Dim str As String = layout.text
Dim ary() = str.split(new Char() {chr(13),chr(11),chr(10)})    '清除段落空行
Dim ls As new List(Of String)
For Each s As String In ary
    If s.trim() > "" Then
        ls.add(s)
    End If
    msgbox(s)
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/28 18:02:00 [只看该作者]

执行下面代码,软回车是什么字符?

 

Dim str As String '= layout.text
For Each s As string in str
    output.show(s & " " & asc(s))
Next


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/28 18:31:00 [只看该作者]

好像没有软回车,在图2的第二个软回车处显示32,不知是不是?

图片点击可在新窗口打开查看此主题相关图片如下:image 1.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/6/28 18:33:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/28 22:21:00 [只看该作者]

我这边测试不了。你执行这个获取到的数据是什么?

 

Dim doc = CreateObject("MODI.Document")
doc.Create("d:\test.jpg")
doc.OCR(2052, True, True)
Dim layout = doc.images(0).Layout
ClipBoard.SetText(layout.text)
 
得到的结果,粘贴到记事本或者word发上来看看。

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/6/29 8:03:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:粘贴结果.txt


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/29 9:06:00 [只看该作者]

你给的结果没有回车或者特殊字符,无法分割的。

 回到顶部