python識別圖片文字


因為學校要求要刷一門叫《包裝世界》的網課,而課程里有200多道選擇題,而且只能在手機完成,網頁版無法做題,而看視頻是不可能看視頻的,這輩子都不可能看...所以寫了幾行代碼來進行百度搜答案

思路如下:

  1. 手機屏幕投影到電腦上;
  2. 截圖並識別圖片文字;
  3. 調用百度來進行搜索;
  4. 提取html關鍵字。

環境配置:python3.6、第三方庫:pyautogui、PIL、pytesseract、識別引擎tesseract-ocr

要識別中文,ocr引擎要下載一個中文包chi_sim放進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關鍵字了,其實是懶


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM