Python实现批量识别图片文字并存为Excel

yizhihongxing

以下是 Python 实现批量识别图片文字并存为 Excel 的完整攻略。

1. 前置条件

在开始本攻略之前,请确保您已经安装了以下环境和库:

  • Python 3.x
  • Tesseract OCR 引擎
  • Pillow 库
  • Pytesseract 库
  • OpenCV 库
  • Pandas 库

2. 构建识别图片的 Python 环境

安装 Tesseract OCR 引擎

Tesseract OCR 是一个优秀的开源 OCR 引擎,能够识别多种语言的文字。您可以从 官方网站 上下载 Tesseract OCR 引擎,并按照说明进行安装。

安装 Pillow 库

Pillow 是 Python 中一个处理图片的库,能够打开、显示、保存图片等。您可以通过以下命令进行安装:

pip install Pillow

安装 Pytesseract 库

Pytesseract 是一个 Python 封装的 Tesseract OCR 的库,能够在 Python 中实现文字识别。您可以通过以下命令进行安装:

pip install pytesseract

安装 OpenCV 库

OpenCV 是一个计算机视觉库,能够对图片进行处理、分析等,提取出图片中的特征信息。您可以通过以下命令进行安装:

pip install opencv-python

安装 Pandas 库

Pandas 是 Python 中一个数据分析的库,能够对数据进行清洗、整理、分析等。您可以通过以下命令进行安装:

pip install pandas

3. 实现批量识别图片文字并存为 Excel

以下是实现批量识别图片文字并存为 Excel 的代码实现。

import os
import cv2
import pytesseract
import pandas as pd
from PIL import Image

# 设置 Tesseract OCR 引擎路径
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

# 定义函数 batch_ocr,实现图片文字识别及保存
def batch_ocr(input_dir, output_file):
    # 遍历图片文件夹中的所有文件
    file_list = os.listdir(input_dir)
    data_list = []
    for filename in file_list:
        if filename.endswith('.jpg') or filename.endswith('.png'):
            # 读取图片
            image = Image.open(os.path.join(input_dir, filename))
            # 将图片转换为灰度模式
            img_gray = image.convert('L')
            # 将灰度图片转换为 OpenCV 格式
            img_opencv = cv2.cvtColor(numpy.array(img_gray), cv2.COLOR_RGB2BGR)
            # 对图片进行二值化处理
            img_binary = cv2.threshold(img_opencv, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
            # 将 OpenCV 图片转换为 PIL 图片
            img_pil = Image.fromarray(cv2.cvtColor(img_binary, cv2.COLOR_BGR2RGB))
            # 使用 Tesseract OCR 引擎进行文字识别
            result = pytesseract.image_to_string(img_pil, lang='eng')
            # 将识别结果存入数据列表
            data_list.append([filename, result])
    # 将数据列表转换为 Pandas 数据框
    df = pd.DataFrame(data_list, columns=['filename', 'ocr_result'])
    # 将数据框保存为 Excel 文件
    df.to_excel(output_file, index=False)

# 调用函数 batch_ocr,传入图片文件夹及输出 Excel 文件路径
batch_ocr('image_dir', 'output_file.xlsx')

4. 示例说明

案例一:如何识别单张图片的文字?

假设我们有一张名为 example.jpg 的图片,需要对其中的文字进行识别。

首先,我们可以使用以下代码读取并显示该张图片:

from PIL import Image

image = Image.open('example.jpg')
image.show()

然后,我们使用以下代码将该图片转换为灰度模式:

img_gray = image.convert('L')
img_gray.show()

接着,我们使用以下代码将灰度图片转换为 OpenCV 格式:

import cv2
import numpy

img_opencv = cv2.cvtColor(numpy.array(img_gray), cv2.COLOR_RGB2BGR)
cv2.imshow('img_opencv', img_opencv)
cv2.waitKey(0)

最后,我们使用以下代码将 OpenCV 图片进行二值化处理,并使用 Tesseract OCR 引擎进行文字识别:

import pytesseract

# 设置 Tesseract OCR 引擎路径
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

# 将 OpenCV 图片进行二值化处理
img_binary = cv2.threshold(img_opencv, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]

# 将二值化后的 OpenCV 图片转换为 PIL 图片,并使用 Tesseract OCR 引擎进行文字识别
img_pil = Image.fromarray(cv2.cvtColor(img_binary, cv2.COLOR_BGR2RGB))
result = pytesseract.image_to_string(img_pil, lang='eng')

print(result)

通过上述代码,我们可以得到该图片中的文字识别结果。

案例二:如何批量识别图片文字并保存至 Excel 文件中?

我们可以使用上文中的代码实现批量识别图片文字并保存至 Excel 文件中。具体步骤如下:

  1. 将需要识别的图片放入名为 image_dir 的文件夹中;
  2. 新建一个 Python 文件,并将上文中的代码复制进去;
  3. 修改代码中的路径参数,将图片文件夹路径及输出 Excel 文件路径修改为自己的实际路径;
  4. 运行 Python 文件,等待文字识别及 Excel 文件生成。

通过上述步骤,我们可以实现批量识别图片文字并保存至 Excel 文件中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现批量识别图片文字并存为Excel - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • python字符串集合面试笔试题

    python字符串面试笔试题 1: 以下代码的输出是? s = ‘foo’ t = ‘bar’ print(‘barf’ in 2 * (s + t)) A.TrueB.Fasle +运算符连接字符串,而*运算符创建多个副本。 2 *(s + t)的结果是’foobarfoobar’,它确实包含字符串’barf’。 2: 以下代码的输出是? print(or…

    python 2023年4月27日
    00
  • 详解用python -m http.server搭一个简易的本地局域网

    用 Python http.server 搭建一个简易的本地局域网 在 Python 中,可以使用内置模块 http.server 来搭建一个简易的本地局域网。以下是详解用 Python http.server 搭建一个简易的本地局域网的方法。 1. 启动 http.server 首先,我们需要在终端中进入到要共享的文件夹目录下,然后使用以下命令启动 htt…

    python 2023年5月15日
    00
  • Python3 多线程(连接池)操作MySQL插入数据

    下面我将详细介绍如何使用Python3多线程(连接池)操作MySQL插入数据。 准备工作 首先,我们需要安装Python3以及对应的MySQL库。可以使用以下命令进行安装: pip install pymysql 创建数据库连接池 使用连接池可以最大化利用已经建立的连接,提高程序的性能和并发能力。下面是创建连接池的示例代码: import pymysql f…

    python 2023年5月19日
    00
  • pywinauto自动化操作记事本

    下面是关于如何使用pywinauto自动化操作记事本的完整攻略。 简介 pywinauto是一个基于Python语言的自动化工具,可以用来自动化Windows的GUI应用程序的测试、交互等操作。本篇攻略将会介绍如何使用pywinauto来自动化操作Windows记事本应用程序。 安装 在使用pywinauto之前,需要先安装pywinauto库。可以使用pi…

    python 2023年5月19日
    00
  • python中向二维数组中添加整行或者增列元素问题

    当然,我很乐意为您提供“Python中向二维数组中添加整行或者增加列元素问题”的完整攻略。以下是详细的步骤和示例: 向二维数组中添加整行 方法1:使用函数 我们可以使用append()函数向二维数组中添加整行。以下是一个示例: matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_row = [10, 11, 12] …

    python 2023年5月13日
    00
  • 一步步教你用python的scrapy编写一个爬虫

    下面是我为你提供的详细攻略: 一步步教你用python的Scrapy编写一个爬虫 Scrapy是Python的一个高效的爬虫框架,可以帮助我们快速、简单地构建爬虫程序。在本攻略中,我们介绍如何使用Scrapy编写一个简单的爬虫程序。 安装Scrapy 在开始编写爬虫之前,我们需要先安装Scrapy。在终端(命令行)中输入以下命令来安装Scrapy: pip …

    python 2023年5月14日
    00
  • python实现输入任意一个大写字母生成金字塔的示例

    实现输入任意一个大写字母生成金字塔的示例,可以通过以下代码来实现: def pyramid(letter): ascii_value = ord(letter) for i in range(1, ascii_value – 64 + 1): print(" " * (ascii_value – i – 64), end="&q…

    python 2023年5月19日
    00
  • 如何在Python中使用PyMongo库连接MongoDB数据库?

    以下是如何在Python中使用PyMongo库连接MongoDB数据库的完整使用攻略,包括安装PyMongo库、连接MongoDB数据库、插入数据、查询数据等步骤。同时,提供了两个示例以便更好理解如何使用PyMongo库连接MongoDB数据库。 步骤1:安装PyMongo库 在Python中,我们可以使用pip命令安装Py库。以下是安装PyMongo库的基…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部