Python 图像识别:使用 Tesseract 和 OpenCV 提取 'NAR' 字符并截取
以下是使用 Python、Tesseract 和 OpenCV 库来读取图像中包含'NAR'字符并确定其坐标,然后截取字符图像并保存的示例代码:
import cv2
import pytesseract
# 读取图像
image = cv2.imread('image.jpg')
# 将图像转为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 使用Tesseract进行字符识别
text = pytesseract.image_to_string(gray)
# 在图像上绘制识别结果
cv2.putText(image, text, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
# 查找'NAR'字符的位置
coordinates = []
for match in pytesseract.image_to_boxes(gray).splitlines():
char, _, _, x, y, _, _ = match.split(' ')
if char == 'N' or char == 'A' or char == 'R':
coordinates.append((int(x), int(y)))
# 根据字符位置截取图像并保存
for i, (x, y) in enumerate(coordinates):
char_image = image[y:y+30, x:x+30] # 根据实际字符大小调整截取范围
cv2.imwrite(f'char_{i}.jpg', char_image)
# 显示结果图像
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
请注意,以上代码中的image.jpg为输入图像的文件名,你需要将其替换为你自己的图像文件名。代码中假设字符大小为30x30像素,你可能需要根据实际情况进行调整。
代码执行后,将会在当前目录下生成多个以char_开头的图像文件,分别对应截取到的字符图像。在图像上绘制的识别结果也会显示出来。
原文地址: https://www.cveoy.top/t/topic/o0N0 著作权归作者所有。请勿转载和采集!