求助关于tesseract-ocr识别中文的问题
·
我将含有中文名字的图片放入文件夹中,让tesseract-ocr识别,代码没有问题,图片也都含有一个人的名字,也可以识别但是只能识别一张
import cv2
import pytesseract
import os
import re
import shutil# 导入shutil模块用于文件复制
# 设置Tesseract可执行文件的路径(根据你的安装路径调整)
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' # 确保路径正确,并包含tesseract.exe
# 图片文件夹路径
images_folder = r'D:\put the picture' # 使用原始字符串来避免路径错误
# 用于存储结果的列表,每个元素是一个包含图片路径和清理后文本的元组
images_data = []
# 遍历文件夹中的所有图片
for filename in os.listdir(images_folder):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff')):
image_path = os.path.join(images_folder, filename)
image = cv2.imread(image_path)
if image is None:
print(f"Error loading image: {image_path}")
continue
#以下代码利用大模型增添预处理帮助识别图片
# 转换为灰度图(提高辨识率)并应用OCR
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
try:
text = pytesseract.image_to_string(gray, lang='chi_sim') # 尝试OCR处理将语言识别lang更改为简体中文
except Exception as e:
print(f"OCR error for image {image_path}: {e}")
continue # 如果OCR处理失败,则跳过当前图片
# 移除特殊字符
cleaned_text = re.sub(r'[^a-zA-Z0-9\u4e00-\u9fa5]', '', text)
images_data.append((image_path, cleaned_text))
# 获取用户输入的学生名字
student_name = input("请输入要查找的学生名字: ").strip()
if not student_name:
print("学生名字不能为空!")
else:
# 查找包含学生名字的图片
found_images = [path for path, text in images_data if student_name in text]
# 新建文件夹用于存放找到的图片
output_folder = os.path.join(images_folder, f"found_{student_name}")
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 复制找到的图片到新文件夹
for path in found_images:
shutil.copy(path, output_folder)
# 输出结果
if found_images:
print(f"找到了有关{student_name}的图片,并已复制到文件夹:{output_folder}")
else:
print(f"未找到有关{student_name}的图片")
这是我的代码请帮我看看有没有解决办法可以多识别几张
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)