使用 Python3 Pytesseract 进行实时屏幕监控

Posted

技术标签:

【中文标题】使用 Python3 Pytesseract 进行实时屏幕监控【英文标题】:Live Screen Monitoring With Python3 Pytesseract 【发布时间】:2019-07-14 16:05:00 【问题描述】:

我正在 Windows 10 上开发一个 python3 项目,我想知道是否有人知道通过 pytesseract 传递 opencv 屏幕抓取?如果没有,还有其他的 OCR 可以吗?

这里是opencv抓屏的代码:

import numpy as np
from PIL import ImageGrab
import cv2



while True:
    screen =  np.array(ImageGrab.grab(bbox=(0,40,800,640)))
    cv2.imshow('window', cv2.cvtColor(screen, cv2.COLOR_BGR2GRAY))
    if cv2.waitKey(25) & 0xFF == ord('q'):
        cv2.destroyAllWindows()

【问题讨论】:

你是什么意思“pytesseract 似乎只适用于图像”?屏幕抓取肯定是图像吗?也许您正在寻找的图像会有所帮助... 抱歉这个令人困惑的问题,我使用 python 才两个多月,我只知道基础知识。你的意思是像屏幕抓取的屏幕截图? 任何澄清问题的东西都会有所帮助 - 谢谢。 是不是有点不那么混乱了? 我不确定我是否理解问题所在。不如把截取的屏幕传给tesseract,看看能不能识别上面的测试? 【参考方案1】:

我对@9​​87654323@ 知之甚少,但这可能会让您入门:

#!/usr/bin/env python3

import numpy as np
from PIL import ImageGrab
import pytesseract
from PIL import Image, ImageEnhance, ImageFilter
from textblob import TextBlob

# Grab some screen
screen =  ImageGrab.grab(bbox=(0,0,800,640))
# Make greyscale
w = screen.convert('L')

# Save so we can see what we grabbed
w.save('grabbed.png')

text = pytesseract.image_to_string(w)
correctedText = TextBlob(text).correct()

print(correctedText)

从这次抓取:

我明白了:

@ Terminal Shell Edit View Window Help

The writing is on the wall

【讨论】:

谢谢!通过一些简单的调整来适应我的项目,这将是完美的! 酷 - 祝你好运!可能有更好的示例和实践,尝试将带有方括号的[pytesseract] 放入 *** 的 Search 框中,看看其他人也如何使用它。 谢谢,我会调查的。

以上是关于使用 Python3 Pytesseract 进行实时屏幕监控的主要内容,如果未能解决你的问题,请参考以下文章

[python] python3.6 安装 pytesseract 出错

Python3.x:pytesseract识别率提高(样本训练)

python3.5配置pillow,pytesseract与selenium

pytesseract库的安装和使用

TypeError:需要一个类似字节的对象,而不是 python 3.5.2 和 pytesseract 中的“str”

为啥不能用 PIL 和 pytesseract 获取字符串?