以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]使用office2007 OCR组件识别文字后的分段问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=121070)

--  作者:天一生水
--  发布时间:2018/6/28 16:00:00
--  [求助]使用office2007 OCR组件识别文字后的分段问题

通过测试,发现直接运行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


 


--  作者:有点甜
--  发布时间:2018/6/28 17:21:00
--  

这个意思?改成

 

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


--  作者:jyh7081
--  发布时间: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

--  作者:有点甜
--  发布时间: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


--  作者:天一生水
--  发布时间:2018/6/28 18:31:00
--  
好像没有软回车,在图2的第二个软回车处显示32,不知是不是?

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

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

--  作者:有点甜
--  发布时间: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发上来看看。

--  作者:天一生水
--  发布时间:2018/6/29 8:03:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:粘贴结果.txt


--  作者:有点甜
--  发布时间:2018/6/29 9:06:00
--  
你给的结果没有回车或者特殊字符,无法分割的。