导航:首页 > 图片大全 > 如何高度识别图片文字

如何高度识别图片文字

发布时间:2022-11-28 15:33:01

A. 微信公众号长条图如何制作

在微信公众号中,有不少的时候我们都会看到长条图的内容,那么你知道这些公众号长条图是怎么制作的吗?以下是我为您带来的关于微信公众号长条图制作,希望对您有所帮助。
微信公众号长条图制作
1、首先要使用电脑,你的电脑先装好PS,新建一张图,宽800像素,高度可以随便调,按照识别效果我们可以把高度加高

2、点左边的文字工具(热键T),写一个标题

3、放图片或者文字进行编辑成成品

4、内容弄好了后选择另存为web和设备用格式,格式选成jpg,一般品质设置成60就成,不要弄得太小导致不清楚

5、传送到你的手机里面后直接用微信发送就好,看你直接萌萌哒!

猜你喜欢:

1. 微信早安励志图片素材分享

2. 微信公众号签名设计

3. 微信头像励志图片素材分享

4. 微信公众号原创分享样式是什么

5. 微信公众号素材可以转移吗

B. vb 部分截屏之后识别图片上的文字

主要是先要将图片转换为字节数组
'存放格式为(*, *, *),从左下角开始:
'第一维:0-蓝色分量,1-绿色分量,2-红色分量,
'第二维:列;第三维:行

全部步骤如下
1、用DibGet获取图片数据
2、用ColorToBlackAndWhite(或ColorToGray+OtsuColorToBlackAndWhite)将图片数据转换为黑白数据
3、用DibPut将数据恢复到一个PictureBox中
4、截取各个数字到单独的PictureBox中
5、将数字图片转换为图片数据,并与标准数据(0-9)对比,相似度最高的为准(比如与1的相似度为75%,与2的相似度为85%,则此数字为2)
有问题Hi
'图像输出的过程:
Public Sub DIBPut(ByVal IdDestination As Long, ByRef ImageData() As Byte)
Dim LineBytes As Long
Dim Width As Long, Height As Long

Width = UBound(ImageData, 2) + 1
Height = UBound(ImageData, 3) + 1

On Error GoTo ErrLine
Done = False

With bi24BitInfo.bmiHeader
.biWidth = Width
.biHeight = Height
LineBytes = ((Width * Bits + 31) And &HFFFFFFE0) \ 8
.biSizeImage = LineBytes * Height
End With
SetDIBitsToDevice IdDestination, 0, 0, Width, Height, 0, 0, 0, Height, ImageData(0, 0, 0), bi24BitInfo, 0

Done = True
Exit Sub
ErrLine:
MsgBox Err.Description
End Sub

'灰度处理SrcData(0 to 2, 0 to 宽度-1, 0 to 高度-1)
Public Sub ColorToGray(ByRef SrcData() As Byte, ByRef DestData() As Byte, _
Optional Left As Long = -1, Optional Top As Long = -1, _
Optional Right As Long = -1, Optional Bottom As Long = -1)
Dim i As Long, j As Long, k As Long
Dim red As Byte, green As Byte, blue As Byte
Dim Color As Long, newcolor As Long
Dim Width As Long, Height As Long

Width = UBound(SrcData, 2) + 1
Height = UBound(SrcData, 3) + 1
If Left = -1 Then Left = 0
If Top = -1 Then Top = 0
If Right = -1 Then Right = Width - 1
If Bottom = -1 Then Bottom = Height - 1

For j = Left To Right
For k = Height - Bottom - 1 To Height - Top - 1
blue = SrcData(0, j, k)
green = SrcData(1, j, k)
red = SrcData(2, j, k)
newcolor = CLng(0.299 * CDbl(red) + 0.585 * CDbl(green) + 0.114 * CDbl(blue)) '
newcolor = newcolor * 65793
red = newcolor Mod 256
green = newcolor / 256 Mod 256 '(9798 * RValue + 19235 * GValue + 3735 * BValue) / 32768
blue = newcolor / 256 / 256
DestData(0, j, k) = blue
DestData(1, j, k) = green
DestData(2, j, k) = red
Next
Next
End Sub

'黑白处理DestData(0 to 2, 0 to 宽度-1, 0 to 高度-1)
'图片最下面两行总是无法参与变换????只好将采集的图片区域向下多延伸2个像素
Public Sub ColorToBlackAndWhite(ByRef SrcData() As Byte, ByRef DestData() As Byte)
Dim i As Long, j As Long, k As Long
Dim red As Byte, green As Byte, blue As Byte
Dim Color As Long, newcolor As Long
Dim Width As Long, Height As Long

Width = UBound(SrcData, 2) + 1
Height = UBound(SrcData, 3) + 1

For j = 0 To Width - 1
For k = 0 To Height - 1
blue = SrcData(0, j, k)
green = SrcData(1, j, k)
red = SrcData(2, j, k)
newcolor = CLng(0.3 * CDbl(red) + 0.59 * CDbl(green) + 0.11 * CDbl(blue))
' newcolor = CLng(0.39 * CDbl(red) + 0.5 * CDbl(green) + 0.11 * CDbl(blue))
If newcolor > 127 Then newcolor = 255 Else newcolor = 0
red = newcolor
green = newcolor
blue = newcolor
DestData(0, j, k) = blue
DestData(1, j, k) = green
DestData(2, j, k) = red
Next
Next
End Sub

'黑白处理DestData(0 to 2, 0 to 宽度-1, 0 to 高度-1)
'图片最下面两行总是无法参与变换????只好将采集的图片区域向下多延伸2个像素
'OSTU算法可以说是自适应计算单阈值(用来转换灰度图像为二值图像)的简单高效方法。
'1978 OTSU年提出的最大类间方差法以其计算简单、稳定有效,一直广为使用。
Public Sub OtsuColorToBlackAndWhite(ByRef SrcData() As Byte, ByRef DestData() As Byte)
On Error Resume Next
Dim i As Long, j As Long, k As Long
Dim red As Byte, green As Byte, blue As Byte
Dim Color As Long, newcolor As Long
Dim Width As Long, Height As Long
Dim AllSum As Long, SumSmall As Long, SumBig As Long, PartSum As Long
Dim AllPixelNumber As Integer, PixelNumberSmall As Long, PixelNumberBig As Long
Dim ProbabilitySmall As Double, ProbabilityBig As Double, Probability As Double, MaxValue As Double
Dim BmpData() As Byte, Threshold As Byte
Dim Histgram(255) As Integer '图像直方图,256个点
Dim PixelNumber As Integer

Width = UBound(SrcData, 2) + 1
Height = UBound(SrcData, 3) + 1
PixelNumber = Width * Height

For i = 0 To Width - 1
For j = 0 To Height - 1
Histgram(SrcData(0, i, j)) = Histgram(SrcData(0, i, j)) + 1 '统计图像的直方图
Next
Next
For i = 0 To 255
AllSum = AllSum + i * Histgram(i) ' 质量矩
AllPixelNumber = AllPixelNumber + Histgram(i) ' 质量
Next
MaxValue = -1#
For i = 0 To 255
PixelNumberSmall = PixelNumberSmall + Histgram(i)
PixelNumberBig = AllPixelNumber - PixelNumberSmall
If PixelNumberBig = 0 Then Exit For
SumSmall = SumSmall + i * Histgram(i)
SumBig = AllSum - SumSmall
ProbabilitySmall = CDbl(SumSmall) / PixelNumberSmall
ProbabilityBig = CDbl(SumBig) / PixelNumberBig
' Probability = PixelNumberSmall * PixelNumberBig * (ProbabilityBig - ProbabilitySmall) * (ProbabilityBig - ProbabilitySmall)
Probability = PixelNumberSmall * ProbabilitySmall * ProbabilitySmall + PixelNumberBig * ProbabilityBig * ProbabilityBig
If Probability > MaxValue Then
MaxValue = Probability
Threshold = i
End If
Next

For j = 0 To Width - 1
For k = 0 To Height - 1
If SrcData(0, j, k) <= Threshold Then
DestData(0, j, k) = 0
DestData(1, j, k) = 0
DestData(2, j, k) = 0
Else
DestData(0, j, k) = 255
DestData(1, j, k) = 255
DestData(2, j, k) = 255
End If
Next
Next
End Sub

'迭代法 (最佳阀值法)
'(1)求出图象的最大灰度值和最小灰度值,分别记为Zl和Zk,令初始阈值为:T=(Zl+Zk)/2
'(2)根据阈值TK将图象分割为前景和背景,分别求出两者的平均灰度值Z0和ZB:
'(3)令当前阈值Tk=(Z0+ZB)/2
'(4)若TK=TK+1, 则所得即为阈值,否则转2,迭代计算。
Public Sub (ByRef SrcData() As Byte, ByRef DestData() As Byte)
Dim i As Long, j As Long, k As Long
Dim red As Byte, green As Byte, blue As Byte
Dim Color As Long, newcolor As Long
Dim Width As Long, Height As Long
Dim PixelNumber As Integer
Dim Threshold As Integer, NewThreshold As Integer, MaxGrayValue As Integer
Dim MinGrayValue As Integer, MeanGrayValue1 As Integer, MeanGrayValue2 As Integer
Dim IP1 As Long, IP2 As Long, IS1 As Long, IS2 As Long
Dim Iteration As Long, Histgram(255) As Integer

Width = UBound(SrcData, 2) + 1
Height = UBound(SrcData, 3) + 1
PixelNumber = Width * Height

'求出图像中的最小和最大灰度值,并 计算阈值初值为
MaxGrayValue = 0: MinGrayValue = 255
For i = 0 To Width - 1
For j = 0 To Height - 1
Histgram(SrcData(0, i, j)) = Histgram(SrcData(0, i, j)) + 1 '统计图像的直方图
If MinGrayValue > SrcData(0, i, j) Then MinGrayValue = SrcData(0, i, j)
If MaxGrayValue < SrcData(0, i, j) Then MaxGrayValue = SrcData(0, i, j)
Next
Next

NewThreshold = (MinGrayValue + MaxGrayValue) / 2
While Threshold <> NewThreshold And Iteration < 100
Threshold = NewThreshold
'根据阈值将图像分割成目标和背景两部分,求出两部分的平均灰度值
For i = MinGrayValue To Threshold
IP1 = IP1 + Histgram(i) * i
IS1 = IS1 + Histgram(i)
Next
MeanGrayValue1 = CByte(IP1 / IS1)
For i = Threshold + 1 To MaxGrayValue
IP2 = IP2 + Histgram(i) * i
IS2 = IS2 + Histgram(i)
Next
MeanGrayValue2 = CByte(IP2 / IS2)
'求出新的阈值:
NewThreshold = (MinGrayValue + MaxGrayValue) / 2
Iteration = Iteration + 1
Wend

For j = 0 To Width - 1
For k = 0 To Height - 1
If SrcData(0, j, k) <= Threshold Then
DestData(0, j, k) = 0
DestData(1, j, k) = 0
DestData(2, j, k) = 0
Else
DestData(0, j, k) = 255
DestData(1, j, k) = 255
DestData(2, j, k) = 255
End If
Next
Next
End Sub

C. 手提电脑怎么量图片字体高度

操作步骤如下:
1、电脑打开Photoshop,点击工具栏中的文字工具。
2、点击文字工具后,输入文字。
3、输入文字后,按Ctrl+T把文字自由变换。
4、文字自由变换后,按F8,PS界面右上角就会出现W宽度,H高度,这就是文字的大小尺寸。

D. OCR技术浅析

姓名:吴兆阳  学号:14020199009

转自机器人学习研究会

嵌牛导读:OCR(Optical Character Recognition,光学字符识别)的概念早于1920年代便被提出,一直是模式识别领域中重要的研究方向。近年来,随着移动设备的快速更新迭代,以及移动互联网的快速发展,使得OCR有更为广泛的应用场景,从以往的扫描文件的字符识别,到现在应用到自然场景中图片文字的识别,如识别身份证、银行卡、门牌、票据及各类网络图片中的文字。

嵌牛鼻子:ORC技术

嵌牛提问:什么是ORC,如何使用?

嵌牛正文:

以深度学习兴起的时间为分割点,直至近五年之前,业界最为广泛使用的仍然是传统的OCR识别技术框架,而随着深度学习的崛起,基于这一技术的OCR识别框架以另外一种新的思路迅速突破了原有的技术瓶颈(如文字定位、二值化和文字分割等),并已在工业界得到广泛应用。

笔者针对业务中的身份证照片文字识别需求分别尝试了传统OCR识别框架及基于深度学习的OCR识别框架。下面就以身份证文字识别为例分别简要介绍两种识别框架。

传统OCR技术框架

如上图所示,传统OCR技术框架主要分为五个步骤:

首先文本定位,接着进行倾斜文本矫正,之后分割出单字后,并对单字识别,最后基于统计模型(如隐马尔科夫链,HMM)进行语义纠错。可按处理方式划分为三个阶段:预处理阶段、识别阶段和后处理阶段。其中关键在于预处理阶段,预处理阶段的质量直接决定了最终的识别效果,因此这里详细介绍下预处理阶段。

预处理阶段中包含了三步:

定位图片中的文字区域,而文字检测主要基于连通域分析的方法,主要思想是利用文字颜色、亮度、边缘信息进行聚类的方式来快速分离文字区域与非文字区域,较为流行的两个算法分别是:最大极值稳定区域(MSER)算法及笔画宽度变换(SWT)算法,而在自然场景中因受到光照强度、图片拍摄质量和类文字背景的干扰,使得检测结果中包含非常多的非文字区域,而目前从候选区域区分出真正文字区域主要两种方法,用规则判断或轻量级的神经网络模型进行区分;

文本区域图像矫正,主要基于旋转变换和仿射变换;

行列分割提取出单字,这一步利用文字在行列间存在间隙的特征,通过二值化并在投影后找出行列分割点,当在文字与背景的区分度较好时,效果很好,而拍摄的图片中光照、摄像质量的影响,并且文字背景难以区分时,常造成错误分割的情况。

下面介绍基于传统OCR框架处理身份证文字识别:

身份证识别技术流程与上述框架稍微有所差异。对该问题,已知先验信息:a.证件长宽固定;b.字体及大小一致;c.文本相对于证件位置固定;d.存在固定文字。因此,处理该问题的思路为:先定位目标物体(证件),矫正后提取文字进行识别,最后进行语义纠错,如下图:

目标物体定位并矫正。基于现有的先验信息,定位最后的方法为采用模板关键点特征匹配的方法,并利用模板上特征点及目标图像特征点坐标之间的关系进行透视变换,以定位目标物体,如下图所示。接着,基于四角的坐标,进行旋转、仿射、尺寸的变换,并提取出目标物体的俯视图。

因文字位置相对固定,接着便分割出文字区域,二值化后,行列分割出单个字符。这里的技术难点在于二值化,二值化效果的好坏直接影响字符分割,并最终影响识别结果。受光照和拍摄质量的影响,全局二值化难以设置统一的阈值,而自适应二值化算法易受到阴影及模糊边界的干扰。所以在这边尝试过许多方法,测试下来未发现在任何情形下效果都满足要求的方法。

分割出单字后接着用分类器进行识别,并在这步基于统计上的先验信息定义了一个简单的优化函数,可看做1-gram语言模型。先验信息为:2400(总共660273)汉字的使用频率之和为99%以上。定义的优化函数为:

式中,Pi为该字出现的概率,confi为置信度值。

下图给出了示例:

因上述的优化过程中假定各状态相互独立并与上一状态没有联系,故不可避免存在语义上的错误。而如何基于现有的输出序列,对序列进行语义上的修正,那么最直观的想法就是用隐马尔可夫模型(Hidden Markov Model,HMM)解决这个问题,其基于观察序列,求出最优隐序列。其可以抽象为如下图的过程。在给定O序列情况下,通过维特比算法,找出最优序列S:

传统OCR冗长的处理流程以及大量人工规则的存在,使得每步的错误不断累积,而使得最终识别结果难以满足实际需求。接下来讨论基于深度学习的OCR。

基于深度学习的OCR识别框架

目前,从技术流程上来说,主要分为两步,首先是检测出图像中的文本行,接着进行序列识别。 可见,基于深度学习的OCR识别框架相比于传统OCR识别框架,减少了三个步骤,降低了因误差累积对最终识别结果的影响。

文本行检测,其又可分为水平行文字检测算法与倾斜文字行检测算法。这里主要介绍下Tian提出算法CTPN,其算法框架如下图。主要思路是将文本行识别看做一个序列识别问题,不同于一般的目标检测问题,引入RNN来利用上下文的信息。

具体流程为:

用VGG16的5个卷积层得到特征图(feature map,W*H*C);

在Conv5的feature map的每个位置上取3*3*C的窗口的特征,这些特征将用于预测该位置k个anchor(anchor的定义和Faster RCNN类似)对应的类别信息,位置信息;

将每一行的所有窗口对应的3*3*C的特征(W*3*3*C)输入到RNN(BLSTM)中,得到W*256的输出;

将RNN的W*256输入到512维的fc层;

fc层特征输入到三个分类或者回归层中。第二个2k scores 表示的是k个anchor的类别信息(是字符或不是字符)。第一个2k vertical coordinate和第三个k side-refinement是用来回归k个anchor的位置信息。2k vertical coordinate表示的是bounding box的高度和中心的y轴坐标(可以决定上下边界),k个side-refinement表示的bounding box的水平平移量。这边注意,只用了3个参数表示回归的bounding box,因为这里默认了每个anchor的width是16,且不再变化(VGG16的conv5的stride是16)。回归出来的box如Fig.1中那些红色的细长矩形,它们的宽度是一定的;

用简单的文本线构造算法,把分类得到的文字的proposal(图Fig.1(b)中的细长的矩形)合并成文本线。

上图为给出基于CTPN的例子,框线部分是算法识别出的文字行,可见在图片光照不均、人工合成及文字背景对比不明显的情形下均有很好的效果。 相比于传统文字定位方法,具有更好的鲁棒性及明显的优势。

文字行识别。近两年比较受关注的主要有两种,一种是CNN+RNN+CTC的方法,另外一种是用attention model+CNN+RNN的方法。这里主要介绍下CNN+RNN+CTC,算法框架由图给出。分为三层,CNN层、RNN层及解码(transcription)层。在CNN层,用于提取图像特征,利用Map-to-Sequence表示成特征向量;在RNN层,用双向LSTM识别特征向量,得到每列特征的概率分布;在解码层,利用CTC和前向后向算法求解最优的label序列。因此,该方法能够识别不定长的文字行。

两个例子:

Out:辽宁省长海县广鹿乡沙尖

Out:河南省邓州市九龙乡姚营

E. 在photoshop中怎么才能知道背景图片中的字大小和字体

在photoshop中识别背景图片的字体可以通过字体菜单下面的"符合字体"选项实现,下面给大家演示一下如何操作:

1、点击文字下面的"符合字体"选项

F. 如何去除图片上的文字

英雄介绍六种用PS去除文字的方法,欢迎大家分享使用。一、使用仿制图章工具去除文字这是比较常用的方法,具体的操作是,选取仿制图章工具,按住Alt键,在无文字区域点击相似的色彩名图案采样,然后在文字区域拖动鼠标复制以覆盖文字。要注意的是,采样点即为复制的起始点。选择不同的笔刷直径会影响绘制的范围,而不同的笔刷硬度会影响绘制区域的边缘融合效果。二、使用修补工具去除文字如果图片的背景色彩或图案比较一致,使用修补工具就比较方便具体操作是:选取修补工具,在公共栏中选择修补项为“源”,关闭“透明”选项。然后用修补工具框选文字,拖动到无文字区域中色彩或图案相似的位置,松开鼠标就完成复制。修补工具具有自动匹配颜色的功能,复制的效果与周围的色彩较为融合,这是仿制图章工具所不具备的。三、使用修复画笔工具去除文字操作的方法与仿制图章工具相似。按住Alt键,在无文字区域点击相似的色彩或图案采样,然后在文字区域拖动鼠标复制以覆盖文字,只是修复画笔工具与修补工具一样,也具有自动匹配颜色的功能,可根据需要进行选用。四、借图法某些情况下,框选无文字区域的相似图形(或图案),按Ctrl+j键将其复制成新的图层,再利用变形工具将其变形,直接用以覆盖文字会更为快捷。五、应用消失点滤镜法对于一些透视效果较强的画面(如地板),可以应用“消失点”滤镜进行处理。图例中的操作方法是,框选要处理的文字区域,(防止选区以外的部分也被覆盖)执行菜单命令:滤镜——消失点,进入消失点滤镜编辑界面。1、选取左边工具栏中的创建面板工具,由地板砖缝交汇处开始,沿着缝隙,依次点四个点,连成一个有透视效果的矩形。然后拖动其边线向右方及下方扩展,令面板完全覆盖文字。2、选取左边工具栏中的图章工具,按住Alt键点击选取源图像点,绿色十字变红后,在文字区域拖动便完成复制。 六、某些背景色为垂直线性渐变颜色的图标,有一个方便的方法去除文字。方法是,用矩形选框工具在无文字区域中作一个选区,选区不宜太宽,高度应高于文字。

G. 好用的手机纸质识别文字软件

这样的情况下,我便开始寻找一些能转图片为文字的方法。这样,我便不用再自己抄写图文案了,直接复制、粘贴转换后的文字内容就好。迅捷OCR文字识别软件是我在网上找到的一款工具,用它可以将图片(用手机拍照纸质文字成图片)转换成电子版文字。除了pc版,它还有app版的,我们一起来学习下图片转文字方法。
识别纸质文字方法
pc版软件操作:
对于老师来说,学会ocr文字识别技能还是挺有用处的,很多重要文字信息用它都可直接获取出来。现在,我们先来讲讲用电脑怎么识别图片为文字。进入软件首页,看需要选择合适的ocr文字识别功能就好,例如快速识别单张图片为文字功能。
接着,我们便可以把图文件添加进来软件啦。这是来自日本的一段美文,现在网上有很多这种只有文案的白底图片。我使用软件把它识别后转换成文字,便发给学生们以积累写作素材啦。
app版软件操作:
关于电脑版软件的操作步骤已经讲完啦,我们现在来看看手机app怎么识别图片中文字。进入app首页,选择【导入图片】功能,即可把纸质文字拍照图片给导入进来啦。接着,直接识别图片就好。
随时随地,您有可能需要利用电子邮件迅速发送费用收据、名片或演示文稿幻灯片。即使附近无扫描仪,手机多功能扫描仪 亦可提供解决您问题的完美与便利的解决之道。 手机多功能扫描仪能出色地转换您的图像、现有的纸张文档、白板以及更多,以便创建业界标准 PDF 文档。管理严格的现代社会中,你是否为了各种证件的保存费尽脑筋?繁重忙乱的工作中,你是否被无休止的文件录入,压垮了身体?无需担心,因为你遇见了它,身体、心灵双重解放的办公学习神器——CS扫描全能王。
一、表格识别
CS扫描全能王能够扫描纸质文档提取文字,形成电子文档。其功能却不止于此,同时还可以扫描纸质表格,形成电子表格。
当前各类扫描类APP的表格识别功能,普遍存在识别精度低或难以识别的问题,CS扫描全能王的高精度OCR识别完美避开了这个痛点,在纸质表格识别方面做到了技术领先。识别结果细节清晰,数据完整,边缘整齐。减少数据录入的费时费力,从给用户以最优的表格电子化转换体验。
二、手写识别
在识别内容上,CS扫描全能王不存在严重区分。既能识别排版工整的打印文档,也可以精准识别手写笔记,避免了因字迹潦草而带来的识别错误问题。识别结果如字迹直接书写在屏幕上一般真实可辨。
手写识别功能可以应用在手写收据扫描传送、电子签名、实时分享会议纸质文件等领域在学习资料的扫描、保存手写笔记,并识别编辑成可分享笔记等方面也拥有高度的可应用性,方便快捷,是工作和学习的好助手。
三、语言识别
CS扫描全能王的另一个超强识别能力就是它能够精准识别多国语言。不同语言的书写组织方式之间存在巨大差异,语言识别要求APP对各国语言书写组织特征了如指掌,自动规避符号错误,完成迅速优质识别。
CS扫描全能王的多国语言识别功能能够在用户识别各国语言文件时有效保证文字准确率,高精度的OCR识别功能帮助用户缩短文稿校对时间,扫描后即可转换成电子文本,无需再修改由识别不精造成的文字错误问题,做到迅速转换、放心转换。
CS扫描全能王自问世以来,因其便捷的扫描识别、云端共享等功能受到了广泛好评。全方位功能优化的基础上,CS扫描全能王的高精度OCR识别技术更强化了扫描时的清晰程度、文档转换的高质量和演示、展示的便捷度。由精准识别带来的畅爽体验,前期关注CS扫描全能王的用户已经率先了解并体验过了。现在,CS扫描全能王以更强大的实力和亲切的姿态向你走来。在使用之前,让我们一起细致了解一下它的强大识别功能。

H. OCR文字识别软件哪个易用可网上下载

OCR文字识别软件 Mini Ocr

xdowns.com/view_soft/3/7/OCRwenzishibieruanjian Mini Ocr.html



本软件是飞涛软件工作室开发的一款免费Ocr软件,主要用于识别图像文件之中,出现
的汉字显示字体。Ocr的中文含意是光学字符识别。
为什么叫Mini呢?因为现有的识别汉字的商业Ocr软件,动辄二三十兆,而本软件解
压后,也不过三兆多,身材比较纤小,再加上本软件主要用于识别字体比较小的汉字,所
以叫Mini,中文的发音是“迷你”,中文含义是超小型。

既然有了商业Ocr软件,为什么还要开发这个软件?

不同于商业Ocr软件,本软件是免费的,可以自由使用。第二个不同之处,本软件的
识别对象是屏幕出现的“显示汉字”,而不是针对扫描仪扫出来的“打印汉字”。二者有什
么不同呢?最重要的一点: 扫描出来的打印汉字的高度和宽度一般都在30多个像素点之
上,这是我用画图软件,打开某个商业Ocr的samples\sample1.tif,然后一点一点数出
来的。从文件名和目录名的中文含意可以看出,这个点数应该是一个典型值。那么,如果
用商业Ocr识别屏幕上出现的小五号字,汉字的高度是12个像素点,会出现什么情况呢?
测试方法:用记事本随便写几行汉字,设置字体为小五号字。这大概是看着还算舒服
的最小号的汉字字体了(高度是12个像素点),如果再小,字体就很难看了。然后,按拷
屏键PrtSc,把屏幕的图像拷贝、粘贴到画图软件中,修剪尺寸后,保存为bmp的格式。
然后,我找了两个国内最着名的Ocr软件进行测试,结果让人大吃一惊,识别率几乎为零。
把图像放大两倍,再测试,结果仍然很不理想,大概也只有百分之二三十的样子。

开发Mini Ocr软件的由来

我在开发护花使者反黄图像识别软件的时候,遇到有些图像里,嵌有某些文字,如果能
把文字识别出来,图像的含义就很容易让计算机理解了。预算有限,我连扫描仪都舍不得
买,就更别想买商业Ocr的开发包了,大概几十万,或者更多,或者别人压根就不卖。况且
它们的识别率对小字体几乎为零,不符合我的要求。看来,只好自力更生,重新写一个了。

开发Mini Ocr的历程

经过三个多月的努力,终于诞生了这款Mini Ocr 软件。第1个月做出了汉字识别的
核心模块,第2个月做出了文章段落切分的算法,并加入了对英文,数字,标点的支持,
第三个月继续调整英汉混排和汉字切分的算法,并用MFC 做了一个界面。

Mini Ocr的软件架构

为了让更多的人能使用到这个软件,我在windows系统下,采用VC进行编程,界面当
然只好用MFC写了。软件架构是一个SDI框架下的多窗口切分界面,左上角的窗口是一个
CFormView,用来显示常用的按钮;左下角是一个CEditView,用来显示帮助信息;右上角
是一个CView,用来显示要识别的图像;右下角是一个CEditView,用来存放识别出来的文
字。识别部分采用了工作者线程,以避免显示界面的主线程僵掉。识别部分是整个软件的
核心,与操作系统无关,可以单独摘出来放在dos窗口里跑,也可以移植到Linux系统中跑。

汉字识别软件的难点所在:

英文识别有一些开放源码的软件,我看过的软件,主要采取两种识别方法:基于规则
的方法,和采用神经网络方法。而这两种方法,在识别汉字时,都不宜采用。因为汉字数
目众多,最常用的国标2312的一级汉字就有3755个。如果借用基于规则的方法,需要对
三千多个汉字,逐一人工写出分类规则,工作量太大,我一个人无法完成;如果采用神经
网络的方法,这么多汉字,我不敢想象,需要多少层网络和神经节点呀!如果采用网格法,
抗位移的效果太差;而采用不变矩法,识别人和入,土和士,相似度又难于控制。除此之
外,汉字切分也是一大难题。英文宽度大概只有汉字一半,标点符号大概只有汉字三分之
一宽,数字大概只有四分之一的宽度。而汉字本身又有二分字,和三分字。某些字,如“啊”,
字体小时可能是独体字,字体大些,变为二分字,字体再大,又变为三分字。加上汉字与
汉字之间的粘连、汉字与英文的混排,英文与英文的粘连,造成汉字切分模块的算法,甚
至比汉字识别模块的算法还要复杂得多。为了克服这些难点,并加快识别速度,我在算法
设计时,采用了一些优化和简化的策略。经过实践检验,证明行之有效。

Mini Ocr进行汉字识别的策略:
1) 采用复合特征的分类方法。
2) 字符集选择3755个一级汉字。
3) 字体选择最常用的宋体。
4) 字号选择从小五号到一号汉字,主要针对20个点之内的小字体。
5) 英汉混排时,汉语优先。
6) 汉字粘连时,进行动态优化切分。

展望与下一步的开发计划:
1) 重新优化英文识别的算法;
2) 对英文粘连的切分算法进行调整;
3) 移植进入Linux;

选择Ocr软件的建议:

如果您选择Ocr软件,目的是用来识别扫描仪出来打印字体,推荐还是选用知名的商业Ocr。
如果您要识别屏幕上显示的汉字,Mini Ocr是一个比较不错的选择。真诚地希望您在使用
中,能喜欢上它

I. ocr是什么意思

OCR是英文optical character recognition的缩写,意思是:文字识别

OCR(optical character recognition)文字识别是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程;即,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。

如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。

(9)如何高度识别图片文字扩展阅读

应用:

OCR文字识别很重要的一个技术参数,就是识别率。就拿身份证识别来举例子,就会涉及到两个问题。身份证识别出来的最终目的是要有格式,供直接录入系统,姓名项、地址项、身份证号项都黏在一起,就没办法使用了;

目前身份证识别率能达到98%以上,如果拿通用OCR文字识别来识别,识别率达不到如此高识别率,需要专门针对身份证进行校正优化。所以OCR文字识别根据特殊识别内容,形成了多个产品出来。

同样身份证识别,项目使用中,方案有分多种,有云端识别,也可以手机端本地识别。根据应用场景来区分需求。云端的会涉及到网络延时和流量产生费用等,但微信工作号之类的,只能使用这种方式。手机端本地识别,识别速度快,不会产生流量,也没有网络延时。

阅读全文

与如何高度识别图片文字相关的资料

热点内容
电脑图片png怎么转jpg格式 浏览:291
做衣服的软尺图片 浏览:464
奶酷脸男生图片 浏览:874
如何选合适的背景图片 浏览:544
小女孩掰手腕图片 浏览:618
抱书的女孩子的图片二次元 浏览:981
中童短发的发型图片女 浏览:753
女孩屁股的图片 浏览:942
手工立体作品图片大全 浏览:570
9张手机图片转word文档 浏览:189
狼女图片动漫 浏览:667
ct的日期怎么看图片 浏览:367
铃木重机车图片和价格 浏览:684
乳罩品牌价格及图片 浏览:726
热巴黑红衣服在一起的图片 浏览:264
伤感图片下面带文字的图片 浏览:858
k的动漫图片大全 浏览:417
发烧的女孩图片 浏览:93
男生带帽子伤感图片 浏览:726
废旧衣服变宝图片 浏览:670