參考:Python人工智能之圖片識別,Python3一行代碼實現圖片文字識別
參考:Python實現截圖
參考:Python編寫屏幕截圖程序方法(clipboard)
一、定位截圖
安裝庫:pillow(PIL 是 2.x 版本的,pillow 是 3.x 版本的)、pytesseract(需要修改配置)
代碼實現:(全屏 - 對於雙屏幕來說,只能截取主屏幕)
>>> from PIL import ImageGrab >>> pic = ImageGrab.grab() >>> pic.save('D:/tmp/4.jpg')
代碼實現:(全屏 - 通過 PrintScreen,可以實現兩個屏幕截圖,獲取剪切板的圖像)
from PIL import ImageGrab # 可以實現 printscreen 按鍵,獲取全屏截圖 pic = ImageGrab.grabclipboard() pic.save(r"D:\tmp\save.jpg")
代碼實現:(按照范圍截屏)
from PIL import ImageGrab # 輸入屏幕左上角和右下角的坐標 pic = ImageGrab.grab(bbox=(0, 0, 100, 100)) pic.save(r"D:\tmp\4.jpg")
代碼實現:(按照范圍截屏,但是對於雙屏幕,需要通過 printscreen 獲取截圖,再按照坐標點進行剪切)
from PIL import ImageGrab # 通過 printscreen 獲取全屏截圖 pic = ImageGrab.grabclipboard() pic_mini = pic.crop(box=(200,200,400,400)) pic_mini.save(r"D:\tmp\save_min.jpg")
二、圖片識別
安裝庫:pillow(PIL 是 2.x 版本的,pillow 是 3.x 版本的)、pytesseract(需要修改配置)
安裝軟件:tesseract-ocr
代碼:中文(修改 lang 為 eng,可以用來識別英文)
from PIL import Image import pytesseract #上面都是導包,只需要下面這一行就能實現圖片文字識別,中文識別 text=pytesseract.image_to_string(Image.open('D:/tmp/1.jpg'),lang='chi_sim') print(text)
實現將截圖直接進行識別,不需要存儲~
from PIL import Image import pytesseract pic = ImageGrab.grab(bbox=(200,200,400,400)) text=pytesseract.image_to_string(pic, lang='chi_sim') print(text)
三、獲取 RGB 值
>>> from PIL import Image >>> lena = Image.open("D:\\Code\\Python\\test\\img\\lena.jpg") >>> lena_L =lena.convert("L") >>> lena_L_rgb =lena_L.convert("RGB") >>>lena.getpixel((0,0)) (197, 111, 78) >>>lena_L.getpixel((0,0)) 132 >>>lena_rgb.getpixel((0,0)) (132, 132, 132)