先把Tesseract的基礎(chǔ)部分放上來购裙。
由于對(duì)游戲的文案非常感興趣链嘀,所以希望可以將游戲中圖片截圖萌狂,識(shí)別圖片上的文字轉(zhuǎn)成txt,基于此記錄一下學(xué)習(xí)過程怀泊,簡單記錄茫藏。
環(huán)境說明:
Mac 10.13
python 2.7
Tesseract 3.05.01github地址
因?yàn)閷?duì)這些也不懂所以都是按照網(wǎng)上的教程來得
英文識(shí)別
Tesseract
github有安裝教程
相關(guān)API參照Python:文本識(shí)別拋棄pytesser,直接使用Tesseract
也就是說包个,當(dāng)安裝好后Tesseract之后刷允,可以在終端直接操作
主要命令操作:
tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
tesseract 圖片名 輸出文件名 -l 字庫文件 -psm pagesegmode 配置文件
-l后的字庫文件可以切換為中文冤留,默認(rèn)是英文
-psm是對(duì)于識(shí)別模式的一些設(shè)置
按照wiki的說法
tesseract 圖片路徑 輸出文件名//eg:tesseract x.png out
即可在終端對(duì)應(yīng)目錄下輸出out.txt 里面是對(duì)文字的識(shí)別碧囊,按照如上試了以下兩張圖片
這張圖片的識(shí)別結(jié)果未成功,并未生產(chǎn)任何txt文件纤怒,終端報(bào)錯(cuò)如下
Tesseract Open Source OCR Engine v3.05.01 with Leptonica
Warning. Invalid resolution 0 dpi. Using 70 instead.
//關(guān)于為什么會(huì)報(bào)這一行還沒有查明白糯而,因?yàn)榘l(fā)現(xiàn)無論成功與否都會(huì)報(bào)這一行
//簡單搜索一下大概于tif什么之類的有關(guān)系,還沒有查找
當(dāng)換成另一張圖片識(shí)別且產(chǎn)生txt泊窘,內(nèi)容如下
Y" ‘ WWIHBNEISM H8 3
ORGAN
NICHOLSON FREEMAN
MUM’VHHIIV-HUN’N/D?mhnAMENUMMME UWUFDW WM TIFEUEKEMT A
¢ WWW!“ HUBEEWWMWFW .
zzrmmn Jmmmu JWMHH ‘ ,
mum _. v _ mm“
now
從以上看出熄驼,識(shí)別還是要看圖片背景等像寒,在tesseract總默認(rèn)是英文識(shí)別,且涉及到參數(shù)psm的問題瓜贾,關(guān)于參數(shù)psm請(qǐng)?jiān)诮K端直接輸入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.
初步的文字識(shí)別還是ok的诺祸,因?yàn)樽罱K要的結(jié)果是中文識(shí)別,所以要看一下如何進(jìn)行中文識(shí)別祭芦。
中文識(shí)別
tesseract提供了中文的文字識(shí)別筷笨,下載地址https://github.com/daheicode/chi_sim
下載之后將chi_sim.traineddata
文件拷貝到中文文件存放地址:
/usr/local/Cellar/tesseract/3.05.01/share/tessdata
//我在mac上存放到這里時(shí)有效的,如果無效就需要再查查了
//這個(gè)文件進(jìn)去后可以看到英文的識(shí)別文件`eng.traineddata`)
開啟終端進(jìn)行中文文字識(shí)別
tesseract 輸入圖片路徑 -l chi_sim 輸出文件名字
這里測試了一下龟劲,識(shí)別結(jié)果一言難盡吧胃夏,對(duì)于陰陽師的傳記識(shí)別很差,周圍有一些文字進(jìn)行干擾
如果對(duì)于圖片進(jìn)行裁剪到如下程度
識(shí)別結(jié)果是很一言難盡的昌跌,仰禀。這個(gè)結(jié)果的誤差率挺高的。
待1己二 lw
楨言宛一次出現(xiàn)耱訣盯町倪 釁
也只是笑笑蚕愤、 并沒有責(zé)怪這個(gè)驤子
D 但是幔憧地. 貴怪也開始了' 篷
篝還有打罵. 驥子的靴上遍布傷痕
害怕受列懲罰的孩子. 哭*預(yù)知著
一切. 預(yù)言卻還是耬未趟不準(zhǔn)口
終于. 有人操亂 這孜子既然己經(jīng)
失去T傾知的能九 不如就放弄這
個(gè)孩子, 將他獻(xiàn)給淹禮 或許還能
平息災(zāi)祝 纂一次聽到這個(gè)提議時(shí).
人4?紛汾反對(duì), 認(rèn)為這對(duì)璩子太瀵
忍了口 可是巢二炎 第三次的時(shí)伉
反對(duì)的人罐毅赭嘰
嘗試了一下微博的截圖
結(jié)果為
全球健身中心-喧
11分鐘前來目 微博淝伽咖
拿去參考-下0
@全球裝飾大全 - 甜
我敢說這是我見過最漂亮最實(shí)用的室內(nèi)設(shè)計(jì)了,絕對(duì)沒有比這更簡美了.迸門就是原木地板,
客廳就簡單的布藝沙發(fā)搭配原木電器柜.迸門兩邊做的是嵌入式柜體,牧納更是做到了極致;
住在這樣純夫然酌冢里簡直不要不要的m 喜歡就關(guān)注@全球裝飾大全 胗微博全景圖片
〕
微博全景圖片
我敢說這是我見過最室內(nèi)設(shè)計(jì)了, 絕對(duì)沒有比這更簡美了° 布藝沙發(fā)
搭配原木電器柜° 迸門兩邊做的是嵌入式柜體, 底面整體原木地板,
12分鐘前 來自 微博 weibo.oom 區(qū) 97 臼 6 凸 35
到這里看一下我自己的需求是可以將圖片中的文字轉(zhuǎn)換答恶,而且需求圖片沒有陰陽師背景那么雜亂,所以轉(zhuǎn)換結(jié)果很好萍诱,因此沒有繼續(xù)看如何提高識(shí)別準(zhǔn)確度亥宿。
這里一直講的是通過終端進(jìn)行圖片轉(zhuǎn)文字。但其實(shí)最后是通過python調(diào)用的Tesseract
未完待續(xù)
那最后的實(shí)現(xiàn)過程是
python控制安卓截圖=>截圖后裁圖到合適區(qū)域=》圖片轉(zhuǎn)換文字存儲(chǔ)=》模擬點(diǎn)擊進(jìn)行下一頁面 【循環(huán)此過程】
(循環(huán)過程還沒寫 程序大概就是借鑒跳一跳的那個(gè)來~~~畢竟還不會(huì)python……)
終于告別手敲文案啦砂沛!還是很棒的烫扼!撒花~