先把Tesseract的基础部分放上来。
由于对游戏的文案非常感兴趣,所以希望可以将游戏中图片截图,识别图片上的文字转成txt,基于此记录一下学习过程,简单记录。
环境说明:
Mac 10.13
python 2.7
Tesseract 3.05.01github地址
因为对这些也不懂所以都是按照网上的教程来得
英文识别
Tesseract
github有安装教程
相关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 里面是对文字的识别,按照如上试了以下两张图片
这张图片的识别结果未成功,并未生产任何txt文件,终端报错如下
Tesseract Open Source OCR Engine v3.05.01 with Leptonica
Warning. Invalid resolution 0 dpi. Using 70 instead.
//关于为什么会报这一行还没有查明白,因为发现无论成功与否都会报这一行
//简单搜索一下大概于tif什么之类的有关系,还没有查找
当换成另一张图片
识别且产生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 输出文件名字
这里测试了一下,识别结果一言难尽吧,对于阴阳师的传记识别很差,周围有一些文字进行干扰
如果对于图片进行裁剪到如下程度
识别结果是很一言难尽的,。这个结果的误差率挺高的。
待1己二 lw
桢言宛一次出现耱诀盯町倪 衅
也只是笑笑、 并没有责怪这个骧子
D 但是幔憧地. 贵怪也开始了' 篷
篝还有打骂. 骥子的靴上遍布伤痕
害怕受列惩罚的孩子. 哭*预知著
一切. 预言却还是耧未趟不准口
终于. 有人操乱 这孜子既然己经
失去T倾知的能九 不如就放弄这
个孩子, 将他献给淹礼 或许还能
平息灾祝 纂一次听到这个提议时.
人4fl纷汾反对, 认为这对璩子太瀵
忍了口 可是巢二炎 第三次的时伉
反对的人罐毅赭叽
尝试了一下微博的截图
结果为
全球健身中心-喧
11分钟前来目 微博淝伽咖
拿去参考-下0
@全球装饰大全 - 甜
我敢说这是我见过最漂亮最实用的室内设计了,绝对没有比这更简美了.迸门就是原木地板,
客厅就简单的布艺沙发搭配原木电器柜.迸门两边做的是嵌入式柜体,牧纳更是做到了极致;
住在这样纯夫然酌冢里简直不要不要的m 喜欢就关注@全球装饰大全 胗微博全景图片
〕
微博全景图片
我敢说这是我见过最室内设计了, 绝对没有比这更简美了° 布艺沙发
搭配原木电器柜° 迸门两边做的是嵌入式柜体, 底面整体原木地板,
12分钟前 来自 微博 weibo.oom 区 97 臼 6 凸 35
到这里看一下我自己的需求是可以将图片中的文字转换,而且需求图片没有阴阳师背景那么杂乱,所以转换结果很好,因此没有继续看如何提高识别准确度。
这里一直讲的是通过终端进行图片转文字。但其实最后是通过python调用的Tesseract
未完待续
那最后的实现过程是
python控制安卓截图=>截图后裁图到合适区域=》图片转换文字存储=》模拟点击进行下一页面 【循环此过程】
(循环过程还没写 程序大概就是借鉴跳一跳的那个来~~~毕竟还不会python……)
终于告别手敲文案啦!还是很棒的!撒花~
个人博客:
进击的程序茗