使用PIL ImageGrab和PyTesseract的Python
ImageGrab和PyTesseract
ImageGrab是一个帮助捕捉屏幕内容的Python模块。PyTesseract是一个用于Python的光学字符识别(OCR)工具。它们一起可以用来读取屏幕的某一部分的内容。
安装–
Pillow (a newer version of PIL)
pip install Pillow
PyTesseract
pip install pytesseract
除此以外,还需要安装一个魔方的可执行文件。
代码的实现
pytesseract.image_to_string(image, lang=**language**)
– 取出图像并在其文本中搜索该语言的单词。
cv2.cvtColor(image, **colour conversion**)
– 用于使图像变成单色(使用cv2.COLOR_BGR2GRAY)。
ImageGrab.grab(bbox=**Coordinates of the area of the screen to be captured**)
– 用于重复(使用一个循环)捕获屏幕的特定部分。
该守则的目标是:
- 使用一个循环来重复捕捉屏幕的某一部分。
- 将捕获的图像转换成灰度。
- 使用PyTesseract来读取其中的文字。
代码: 使用ImageGrab和PyTesseract的Python代码
# cv2.cvtColor takes a numpy ndarray as an argument
import numpy as nm
import pytesseract
# importing OpenCV
import cv2
from PIL import ImageGrab
def imToString():
# Path of tesseract executable
pytesseract.pytesseract.tesseract_cmd ='**Path to tesseract executable**'
while(True):
# ImageGrab-To capture the screen image in a loop.
# Bbox used to capture a specific area.
cap = ImageGrab.grab(bbox =(700, 300, 1400, 900))
# Converted the image to monochrome for it to be easily
# read by the OCR and obtained the output String.
tesstr = pytesseract.image_to_string(
cv2.cvtColor(nm.array(cap), cv2.COLOR_BGR2GRAY),
lang ='eng')
print(tesstr)
# Calling the function
imToString()
输出
上述代码可用于捕获屏幕的某一部分并读取其中的文本内容。