python識別圖片文字
阿新 • • 發佈:2018-04-21
com www. ID lang 圖片 保存 打開 oid aid
因為學校要求要刷一門叫《包裝世界》的網課,而課程裏有200多道選擇題,而且只能在手機完成,網頁版無法做題,而看視頻是不可能看視頻的,這輩子都不可能看...所以寫了幾行代碼來進行百度搜答案。
思路如下:
- 手機屏幕投影到電腦上;
- 截圖並識別圖片文字;
- 調用百度來進行搜索;
- 提取html關鍵字。
環境配置:python3.6、第三方庫:pyautogui、PIL、pytesseract、<a href="https://github.com/tesseract-ocr/tesseract">識別引擎tesseract-ocr</a>
要識別中文,ocr引擎要下載一個中文包<a href="https://github.com/tesseract-ocr/tesseract/wiki/Data-Files">chi_sim</a>放進Tesseract-OCR\tessdata裏面。安裝完ocr後還要配置一下調用路徑,在Python36\Lib\site-packages\pytesseract找到pytesseract.py(這是我的windows路徑),打開在裏面添加一下路徑:
1 # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY 2 tesseract_cmd = ‘tesseract‘ 3 tesseract_cmd = ‘C:/Program Files (x86)/Tesseract-OCR/tesseract.exe‘ 4 img_mode = ‘RGB‘
然後用AirDroid或者Vysor、360手機助手之類的將手機的屏幕投影到電腦上,用鼠標確定截圖坐標,代碼如下:
1 import pyautogui as pag
2 x,y = pag.position()
3 posStr = "position:"+str(x).rjust(4)+‘,‘+str(y).rjust(4)
4 print(posStr)
要獲取兩個坐標(截圖開始坐標和結束坐標),然後利用獲取的坐標運用如下代碼截圖並調用ocr引擎識別(識別出來的字是每個用空格分開的,所以要去除字符串中的空格),代碼如下:
1 from PIL import Image 2 from PIL import ImageGrab 3 import pytesseract 4 import webbrowser 5 6 pos = (0,245,425, 327) 7 cut_img = ImageGrab.grab(pos) 8 cut_img.save(‘C:/imgSave/1.jpg‘) #保存截圖到文件夾中 9 print("screenshots sucess") 10 11 text=pytesseract.image_to_string(Image.open(‘C:/imgSave/1.jpg‘),lang=‘chi_sim‘) #調用識別引擎識別 12 text=text.replace(" ","") #去空格 13 print(text) 14 url = ‘http://www.baidu.com/s?wd=%s‘ % text #調用百度搜索 15 webbrowser.open(url)
最終因為搜出來的全是題庫,所以就沒有提取html關鍵字了,其實是懶。
python識別圖片文字