我将含有中文名字的图片放入文件夹中,让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}的图片")

这是我的代码请帮我看看有没有解决办法可以多识别几张 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐