python中的图像处理工具

# python

# 图形处理

python中的OCR工具

此内容是直接询问ai + 查询相关资料学习到的,只能说ai确实改变了原有的常规学习方式

在python中可以很好地实现图片的处理以及进行OCR文字识别,所以说我们选择使用python进行文字的识别。

为了实现我们的目标,我们需要使用到OpenCV库来处理图像,并使用Tesseract OCR进行字符识别。

预备工作

Tesseract OCR 除了需要import还需要下载他们的本地工具,我们可以在他们的github上找到适用于window的安装程序

pytesseract · PyPI | 查看python库详情

pip import pytesseract 安装库

然后在 Introduction | tessdoc (tesseract-ocr.github.io) 里面找到你想要的版本,会跳转到相应的下载位置。

下载完成之后将下载位置的基础目录加入PATH 然后重启电脑。

关于的详细运用可以看看tesseract-ocr,基本安装配置,以及python中如何使用?_哔哩哔哩_bilibili

过程分析

在这里我们的目标是将原有图片截取所需部分,然后进行文字的识别

在这里先是使用cv2 进行图片处理,然后对于处理后的图片使用了pytesseract 作为文字识别的工具,调用了pytesseract.image_to_string(img, lang='eng', config='--psm 6') 进行文字识别

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import cv2
import pytesseract
import matplotlib.pyplot as plt # plt 用于显示图片
# 读取图片

img = cv2.imread('test.jpg')
# 定义要提取的区域,这里我们假设我们要从左上角开始,提取50x50的矩形区域
top_left_x = 100
top_left_y = 100
dx = 50
dy = 50
bottom_right_x = top_left_x + dx
bottom_right_y = top_left_y + dy

# 提取区域
crop_img = img[top_left_y:bottom_right_y, top_left_x:bottom_right_x]

# 将灰度转换为黑白,提高识别率
gray = cv2.cvtColor(crop_img, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]

# 使用Tesseract进行字符识别
data = pytesseract.image_to_string(thresh, lang='eng', config='--psm 6')

print(data)

# 如果有多个区域需要识别,可以将上述代码放在循环中

Reference

tesseract-ocr,基本安装配置,以及python中如何使用?_哔哩哔哩_bilibili