搜档网
当前位置:搜档网 › 基于Python的图片文字识别

基于Python的图片文字识别

基于Python的图片文字识别
基于Python的图片文字识别

基于Python的图片文字识别

【摘要】

在有些工程中,有时候我们需要对图片文字识别。本文利用Python,调用OpenCV库,先对图片进行预处理,然后借助Google开源的pytesser对图片文字进行了识别。

【关键词】:OpenCV,pytesser,文字识别

一关于OCR

光学字符识别(英语:Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。一般包括以下几个过程:图像输入、图像前处理、预识别:

1 图像输入:对于不同的图像格式,有着不同的存储格式,不同的压缩方式,目前有OpenCV、CxImage等开源项目。

2 预处理:主要包括二值化,噪声去除,倾斜较正等。

2.1二值化:

对摄像头拍摄的图片,大多数是彩色图像,彩色图像所含信息量巨大,对于图片的内容,我们可以简单的分为前景与背景,为了让计算机更快的、更好地识别文字,我们需要先对彩色图进行处理,使图片只剩下前景信息与背景信息,可以简单的定义前景信息为黑色,背景信息为白色,这就是二值化图。

2.2噪声去除:

对于不同的文档,我们对噪声的定义可以不同,根据噪声的特征进行去燥,就叫做噪声去除。

3 倾斜校正:由于一般用户,在拍照文档时,都比较随意,因此拍照出来的图片不可避免的产生倾斜,这就需要文字识别软件进行较正。

4版面分析:将文档图片分段落,分行的过程就叫做版面分析,由于实际文档的多样性,复杂性,因此,目前还没有一个固定的,最优的切割模型。

5字符切割:由于拍照条件的限制,经常造成字符粘连,断笔,因此极大限制了识别系统的性能。

6 字符识别:这一研究已经是很早的事情了,比较早有模板匹配,后来以特征提取为主,由于文字的位移,笔画的粗细,断笔,粘连,旋转等因素的影响,极大影响特征的提取的难度。

7 版面还原:人们希望识别后的文字,仍然像原文档图片那样排列着,段落不变,位置不变,顺序不变地输出到Word文档、PDF文档等,这一过程就叫做版面还原。

8 后处理、校对:根据特定的语言上下文的关系,对识别结果进行校正,就是后处理。

二利用OpenCV进行预处理

(一)关于OpenCV

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。

OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C 语言接口。该库也有大量的Python,Java和MATLAB的接口。另外,一个使用CUDA 的GPU接口也于2010年9月开始实现。

(二)使用OpenCV进行图片预处理

1.读入图像,并把彩色图转化为灰度图

本文需要识别的图片如下,为一张彩色图

在进行图像处理的时候,对灰度图的处理往往比彩色图简单一些,也少消耗一下资源,所以,在进行下一步工作前,我们先把图像转化为灰度图。OpenCV 提供的读入图像接口函数为成imread,转化为灰度图的接口函数为cvtColor,并给它传入参数COLOR_BGR2GRAY,它就可以实现彩色图到灰度图的转换,转化为灰度图后图像如下。

2.对图像进行形态学开运算,并做自适应阈值处理

把图像转换为灰度图后,有时候会产生噪点,有时候文字会在有些地方断裂,这是我们不希望看到的,所以,我们利用开运算去除噪点,并是文字连续。另外,转化为灰度图后,我们发现图片对比度不是很好,为此,我们在采用自适应阈值对图片进行阈值处理,以增强对比度,便于后文的pytesser对文字进行识别。尽心开运算和自适应阈值处理以后,图片效果如下

三利用pytesser进行文字识别

pytesser,OCR in Python using the Tesseract engine from Google。是谷歌OCR 开源项目的一个模块,可将图片中的文字转换成文本(主要是英文)。本文的前面已经对图片进行了各种预处理,现在就利用pytesser来进行文字识别。如果对图片的预处理做的很好,pytesser基本可以实现100%的文字识别。但是pytesser 也有它的不足,它对于图片质量要求较高,除此之外,对于形态相同的数字和字母容易混淆,比如0和O。改进的办法是利用机器学习,纠正识别错的,提高之后的识别准确率。

四总结与结论

通过对图像进行阈值变换,开运算等预处理,最后采用pytesser对图片文字信息进行了提取,由于图片的质量不同,识别成功率也有所不同。在今后的研究中,可能有必要采取机器学习来提高识别的准确率。

参考文献:

[1] 陈胜勇,刘盛等. 基于OpenCV 的计算机视觉技术实现[M]. 北京:科学出版社,2008.

[2] 汪益民. 基于OCR的书写文字识别系统设计. 安徽农业大学 2007

[3] 沈艳. 基于CMAC神经网络的手写字体识别技术. 哈尔滨工程大学. 2011

[4] 颜伟,李巧月.基于OpenCV 的高斯平滑和自适应阈值化算法研究中国矿业大学2010

附录源程序

#图片预处理

import os

from pytesser import *

import cv2

import numpy as np

img = cv2.imread('p.jpg',0)

imgray =

cv2.cvtColor(img,cv2.COLOR_BGR2GRA Y)

#img = cv2.medianBlur(img,5)

#进行开运算处理

opening = cv2.morphologyEx(imgray, cv2.MORPH_OPEN, kernel)

#自适应阈值处理

th2 =

cv2.adaptiveThreshold(opening,255, cv2.ADAPTIVE_THRESH_MEAN_C,\

cv2.THRESH_BINARY,15,20)

#显示图片

cv2.imshow('adative',th2)

cv2.waitKey(0)

cv2.destroyAllWindows()#利用pytesser进行识别import os

import Image

import ImageEnhance import ImageFilter

import sys

from pytesser import *

im = Image.open('me.JPG') img = im.convert('L')

enhancer = ImageEnhance.Contrast(img) img = enhancer.enhance(2) img.show()

print image_to_string(img)

从图片中读取文字、把图片转换成文本格式(用word附带功能就能做到)

超简单从图片中读取文字的方法(使用word自带软件) (全文原创,转载请注明版权。本文下载免费,如果对您有一定帮助,请在右边给予评价,这样有利于将本文档位于百度搜索结果的靠前位置,方便本方法的推广) 【本文将介绍读取图片中的文字、读取书中文字、读取PDF格式文件中的文字的方法】一、背景 看到图片中满是文字,而你又想把这些文字保存下来,怎么办? 日常读书,某篇文章写的极好,想把它分享到网络上,怎么办? 一个字一个字敲进电脑?太麻烦了。是不是希望有一种东西能自动识别读取这些文字? 是的,科技就是拿来偷懒的。 其实你们电脑中安装的word早就为你考虑过这些问题了,只是你还不知道。 二、方法 1、图片格式转换 只有特定格式的图片才能读取文字,所以要转换。大家常见的图片格式都是jpg,或者png,bmp等,用电脑自带的画图软件打开你要获取文字的图片(画图软件在开始——所有程序——附件中,win7用户直接右击图片,选择编辑,就默认使用画图软件打开图片),然后把图片另存为tiff格式。 (以我的win7画图为例。另存为tiff格式如下图) 2、打开读取文字的工具 开始——所有程序——Microsoft Office ——Microsoft Office工具——Microsoft Office Document Imaging(本文全部以office2003为例。另外,有些人

安装的是Office精简版,可能没有附带这个功能,那就需要添加安装一下,安装步骤见文末注释①) 3、导入tiff格式的图片 在Microsoft Office Document Imaging软件界面中,选择文件——导入,然后选择你刚才存放的tiff格式的图片,导入。

怎样识别图片上的文字

细心看吧希望能帮助你 要下载安装文字识别软件,你可以试试尚书七号,或者汉王等等 下面教你如何使用ORC: OCR是英文Optical Character Recognition的缩写,翻译成中文就是通过光学技术对文字进行识别的意思, 是自动识别技术研究和应用领域中的一个重要方面。它是一种能够将文字自动识别录入到电脑中的软件技术,是与扫描仪配套的主要软件,属于非键盘输入范畴,需要图像输入设备主要是扫描仪相配合。现在OCR主要是指文字识别软件,在1996年清华紫光开始搭配中文识别软件之前,市场上的扫描仪和OCR软件一直是分开销售的,扫描仪厂商现在已把专业的OCR软件搭配自己生产的扫描仪出售。OCR技术的迅速发展与扫描仪的广泛使用是密不可分的,近两年随着扫描仪逐渐普及和OCR技术的日臻完善,OCR 己成为绝大多数扫描仪用户的得力助手。 一、OCR技术的发展历程 自20世纪60年代初期出现第一代OCR产品开始,经过30多年的不断发展改进,包括手写体的各种OCR技术的研究取得了令人瞩目的成果,人们对OCR 产品的功能要求也从原来的单纯注重识别率,发展到对整个OCR系统的识别速度、用户界面的友好性、操作的简便性、产品的稳定性、适应性、可靠性和易升级性、售前售后服务质量等各方面提出更高的要求。 IBM公司最早开发了OCR产品,1965年在纽约世界博览会上展出了IBM公司的OCR产品——IBMl287。当时的这款产品只能识别印刷体的数字、英文字母及部分符号,并且必须是指定的字体。20世纪60年代末,日立公司和富士通公司也分别研制出各自的OCR产品。全世界第一个实现手写体邮政编码识别的信函自动分拣系统是由日本东芝公司研制的,两年后NEC公司也推出了同样的系统。到了1974年,信函的自动分拣率达到92%左右,并且广泛地应用在邮政系统中,发挥着较好的作用。1983年日本东芝公司发布了其识别印刷体日文汉字的OCR系统OCRV595,其识别速度为每秒70~100个汉字,识别率为99.5%。其后东芝公司又开始了手写体日文汉字识别的研究工作。 中国在OCR技术方面的研究工作相对起步较晚,在20世纪70年代才开始对数字、英文字母及符号的识别技术进行研究,20世纪70年代末开始进行汉字识别的研究。1986年,国家863计划信息领域课题组织了清华大学、北京信息工程学院、沈阳自动化所三家单位联合进行中文OCR软件的开发工作。至1989年,清华大学率先推出了国内第一套中文OCR软件--清华文通TH-OCR1.0版,至此中文OCR正式从实验室走向了市场。清华OCR印刷体汉字识别软件其后又推出了TH-OCR 92高性能实用简/繁体、多字体、多功能印刷汉字识别系统,使印刷体汉字识别技术又取得重大进展。到1994年推出的TH-OCR 94高性能汉英混排印刷文本识别系统,则被专家鉴定为“是国内外首次推出的汉英混排印刷文本识别系统,总体上居国际领先水平”。上个世纪90年代中后期,清华大学电子工程系提出并进行了汉字识别综合研究,使汉字识别技术在印刷体文本、联机手写汉字识别、脱机手写汉字识别和脱机手写数字符号识别等领域全面地取得了重要成果。具有代表性的成果是TH-OCR 97综合集成汉字识别系统,它可以完成多文种(汉、英、日)印刷文本、联机手写汉字、脱机手写汉字和手写数字的

从图片中读取文字、把图片转换成文本格式

一、背景 看到图片中满是文字,而你又想把这些文字保存下来,怎么办? 日常读书,某篇文章写的极好,想把它分享到网络上,怎么办? 一个字一个字敲进电脑?太麻烦了。是不是希望有一种东西能自动识别读取这些文字? 是的,科技就是拿来偷懒的。 其实你们电脑中安装的word早就为你考虑过这些问题了,只是你还不知道。 二、方法 1、图片格式转换 只有特定格式的图片才能读取文字,所以要转换。大家常见的图片格式都是jpg,或者png,bmp等,用电脑自带的画图软件打开你要获取文字的图片(画图软件在开始——所有程序——附件中,win7用户直接右击图片,选择编辑,就默认使用画图软件打开图片),然后把图片另存为tiff格式。 (以我的win7画图为例。另存为tiff格式如下图) 2、打开读取文字的工具 开始——所有程序——Microsoft Office——Microsoft Office工具——Microsoft Office Document Imaging(本文全部以office2003为例。另外,有些人安装的是Office精简版,可能没有附带这个功能,那就需要添加安装一下,安装步骤见文末注释①)

3、导入tiff格式的图片 在Microsoft Office Document Imaging软件界面中,选择文件——导入,然后选择你刚才存放的tiff格式的图片,导入。 4、文字识别

点击下图橙色方框圈中的图标,进行OCR识别,就是让软件把图片中的文字读取出来(图片中文字越多,识别花费的时间越长,进行识别完成之后,左边缩略图框中会有一个眼睛的标志,如图红色箭头所指);点击下图橙色椭圆圈中的图标,就能将整个图片中的文本发送到word。 5、也可以选择图片中的部分文字。 首先还是要点击OCR识别(如果上面已经识别过,就不用再识别一次了,具体看有没有眼睛标志),然后点击下图中左上角菜单中的箭头,就可以自由拖动选择文字、图片,右击选择框,就可以复制文本、图片或者将选中的文字发送到word。

学会这2种方法轻松提取图片中的文字

当我们在网上搜索一些资料,很多内容是不能复制粘贴的。有的小伙伴的打字速度挺快的,就一点一点将搜索到的内容手动输入下来了。而对于我们这些职场新手来说,打字那是不可能的,这时我们只要学会图片转文字的操作就可以将需要的资料保存下来了。接下来小编给大家分享两种可以轻松提取图片文字的两种方法。 方法一:使用OCR软件 软件介绍: 迅捷OCR文字识别软件是我们在办公中常用的一种办公工具,该软件支持极速识别、OCR文字识别、票证识别、语音识别、文档翻译。 具体图片转换文字的操作一起看看: 打开电脑上的OCR文字识别软件之后,在极速识别和OCR文字识别都是可以完成图片转换文字的操作的,我们选择其中一个即可。如选择OCR文字识别功能。 在OCR文字识别功能的页面中,我们就选择截图识别功能了,页面中有截图的快捷方式,先打开要截图的页面,返回到OCR文字识别的页面中按下快捷键就可以进行截图了。

截取的图片在OCR文字识别的页面中有显示,我们对导出格式和导出目录进行一个简单的调整,点击页面右下角的“开始识别”就搞定啦。 方法二:使用在线网站 网站介绍: 该网站是一个PDF转换器的网站,支持多种PDF文件的转换。具备文档转换,文档处理,文档文本翻译,音视频转换,图片文字识别,语音识别等功能。以下给大家看看详细的操作: 当进入到PDF转换器在线网站后,选择点击“图片文字识别”功能中。

在跳转出的图片文字识别页面,需要添加一下图片文件,这个需要我们提前保存一下图片了。需要转换的图片上传成功后,该网站就会自动进行识别了。识别好的文件点击立即下载即可。 图片转换文字怎么转?这下大家学会了吧!简单的两种操作,可以帮助我们实现图片转换文字的操作,以后提取图片中的文字再也不用手动码字了,有需要的小伙伴们可以学学哈!

相关主题