使用Tesseract+python进行图片转文字记录

先把Tesseract的基础部分放上来。
由于对游戏的文案非常感兴趣,所以希望可以将游戏中图片截图,识别图片上的文字转成txt,基于此记录一下学习过程,简单记录。

环境说明:

Mac 10.13
python 2.7
Tesseract 3.05.01github地址
因为对这些也不懂所以都是按照网上的教程来得

英文识别

Tesseractgithub有安装教程
相关API参照Python:文本识别抛弃pytesser,直接使用Tesseract

也就是说,当安装好后Tesseract之后,可以在终端直接操作
主要命令操作:

tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

tesseract    图片名  输出文件名 -l 字库文件 -psm pagesegmode 配置文件

-l后的字库文件可以切换为中文,默认是英文
-psm是对于识别模式的一些设置

按照wiki的说法

tesseract 图片路径   输出文件名//eg:tesseract x.png out

即可在终端对应目录下输出out.txt 里面是对文字的识别,按照如上试了以下两张图片


使用Tesseract+python进行图片转文字记录_第1张图片
test.jpg

这张图片的识别结果未成功,并未生产任何txt文件,终端报错如下

Tesseract Open Source OCR Engine v3.05.01 with Leptonica
Warning. Invalid resolution 0 dpi. Using 70 instead.
//关于为什么会报这一行还没有查明白,因为发现无论成功与否都会报这一行
//简单搜索一下大概于tif什么之类的有关系,还没有查找

当换成另一张图片
使用Tesseract+python进行图片转文字记录_第2张图片
4979037-c4469cd2356e5a06.jpg

识别且产生txt,内容如下

Y" ‘ WWIHBNEISM H8 3

ORGAN
NICHOLSON FREEMAN
MUM’VHHIIV-HUN’N/DflmhnAMENUMMME UWUFDW WM TIFEUEKEMT A
¢ WWW!“ HUBEEWWMWFW .
zzrmmn Jmmmu JWMHH ‘ ,
mum _. v _ mm“
now

从以上看出,识别还是要看图片背景等,在tesseract总默认是英文识别,且涉及到参数psm的问题,关于参数psm请在终端直接输入tesseract

Page segmentation modes:
  0    Orientation and script detection (OSD) only.
  1    Automatic page segmentation with OSD.
  2    Automatic page segmentation, but no OSD, or OCR.
  3    Fully automatic page segmentation, but no OSD. (Default)
  4    Assume a single column of text of variable sizes.
  5    Assume a single uniform block of vertically aligned text.
  6    Assume a single uniform block of text.
  7    Treat the image as a single text line.
  8    Treat the image as a single word.
  9    Treat the image as a single word in a circle.
 10    Treat the image as a single character.
 11    Sparse text. Find as much text as possible in no particular order.
 12    Sparse text with OSD.
 13    Raw line. Treat the image as a single text line,
            bypassing hacks that are Tesseract-specific.

初步的文字识别还是ok的,因为最终要的结果是中文识别,所以要看一下如何进行中文识别。

中文识别

tesseract提供了中文的文字识别,下载地址https://github.com/daheicode/chi_sim
下载之后将chi_sim.traineddata文件拷贝到中文文件存放地址:

/usr/local/Cellar/tesseract/3.05.01/share/tessdata
//我在mac上存放到这里时有效的,如果无效就需要再查查了
//这个文件进去后可以看到英文的识别文件`eng.traineddata`)

开启终端进行中文文字识别

tesseract 输入图片路径 -l chi_sim 输出文件名字

这里测试了一下,识别结果一言难尽吧,对于阴阳师的传记识别很差,周围有一些文字进行干扰


使用Tesseract+python进行图片转文字记录_第3张图片
图片j

如果对于图片进行裁剪到如下程度
使用Tesseract+python进行图片转文字记录_第4张图片
x.jpeg

识别结果是很一言难尽的,。这个结果的误差率挺高的。
待1己二 lw

桢言宛一次出现耱诀盯町倪 衅
也只是笑笑、 并没有责怪这个骧子
D 但是幔憧地. 贵怪也开始了' 篷
篝还有打骂. 骥子的靴上遍布伤痕

害怕受列惩罚的孩子. 哭*预知著
一切. 预言却还是耧未趟不准口
终于. 有人操乱 这孜子既然己经
失去T倾知的能九 不如就放弄这
个孩子, 将他献给淹礼 或许还能
平息灾祝 纂一次听到这个提议时.
人4fl纷汾反对, 认为这对璩子太瀵
忍了口 可是巢二炎 第三次的时伉
反对的人罐毅赭叽

尝试了一下微博的截图


使用Tesseract+python进行图片转文字记录_第5张图片
t.png

结果为

全球健身中心-喧
11分钟前来目 微博淝伽咖
拿去参考-下0

@全球装饰大全 - 甜
我敢说这是我见过最漂亮最实用的室内设计了,绝对没有比这更简美了.迸门就是原木地板,
客厅就简单的布艺沙发搭配原木电器柜.迸门两边做的是嵌入式柜体,牧纳更是做到了极致;
住在这样纯夫然酌冢里简直不要不要的m 喜欢就关注@全球装饰大全 胗微博全景图片

〕

微博全景图片
我敢说这是我见过最室内设计了, 绝对没有比这更简美了° 布艺沙发
搭配原木电器柜° 迸门两边做的是嵌入式柜体, 底面整体原木地板,

12分钟前 来自 微博 weibo.oom 区 97 臼 6 凸 35

到这里看一下我自己的需求是可以将图片中的文字转换,而且需求图片没有阴阳师背景那么杂乱,所以转换结果很好,因此没有继续看如何提高识别准确度。
这里一直讲的是通过终端进行图片转文字。但其实最后是通过python调用的Tesseract

未完待续

那最后的实现过程是

python控制安卓截图=>截图后裁图到合适区域=》图片转换文字存储=》模拟点击进行下一页面 【循环此过程】
(循环过程还没写 程序大概就是借鉴跳一跳的那个来~~~毕竟还不会python……)

终于告别手敲文案啦!还是很棒的!撒花~
个人博客:
进击的程序茗

你可能感兴趣的:(使用Tesseract+python进行图片转文字记录)