pytesseract截图并识别
时间: 2025-02-27 16:37:20 浏览: 30
### 使用 Pytesseract 进行截屏并 OCR 识别文字
为了实现屏幕截图并通过 Pytesseract 执行光学字符识别 (OCR),可以利用 `Pillow` 库来处理图像以及 `pytesseract` 来执行 OCR。另外,对于截取屏幕的操作,则可以通过 `PIL.ImageGrab` 或者第三方库如 `mss` 实现。
#### 安装依赖包
确保安装了必要的 Python 包:
```bash
pip install pytesseract pillow mss
```
#### 导入所需模块
导入用于截屏和 OCR 的必要模块:
```python
import pytesseract
from PIL import ImageGrab
import numpy as np
import cv2
from mss import mss
```
#### 屏幕截图函数定义
下面是一个简单的例子展示如何捕获整个屏幕的内容,并将其转换成适合传递给 Tesseract 的格式:
```python
def capture_screen():
with mss() as sct:
monitor = {"top": 0, "left": 0, "width": 1920, "height": 1080} # 设置要捕捉的区域大小
screenshot = sct.grab(monitor)
img_np = np.array(screenshot)
# 将 RGB 转换为 BGR(OpenCV 默认颜色空间)
frame_bgr = cv2.cvtColor(img_np, cv2.COLOR_RGB2BGR)
return frame_bgr
```
#### 文字识别过程
接下来的部分展示了如何读取刚刚获取到的画面帧数据,并调用 Tesseract API 对其进行 OCR 处理:
```python
def recognize_text(image):
text = pytesseract.image_to_string(Image.fromarray(cv2.cvtColor(image,cv2.COLOR_BGR2RGB)), lang='chi_sim')
cleaned_text = text.replace('\n', '').replace(' ', '')
print(f'识别的结果如下:\n{cleaned_text}')
```
#### 主程序逻辑组合
最后一步就是把上面两个功能结合起来,在主循环里完成从抓图到显示结果的过程:
```python
if __name__ == "__main__":
screen_image = capture_screen()
recognize_text(screen_image)
```
上述代码实现了通过指定屏幕范围内的截图来进行 OCR 字符识别的功能[^1]。需要注意的是,这里假设计算机上已经正确配置好了 Tesseract-OCR 工具,并且路径已经被加入到了系统的环境变量中;如果没有的话,还需要额外设置 `pytesseract.pytesseract.tesseract_cmd` 变量指向本地 Tesseract.exe 文件的位置[^2]。
阅读全文
相关推荐

















