github上的python图片转excel,pytesseract安装相关问题

这篇具有很好参考价值的文章主要介绍了github上的python图片转excel,pytesseract安装相关问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题1:明明都pip install pytesseract,但是就是安装不上

pytesseract 未安装

链接: https://pan.baidu.com/s/1I4HzCgO4mITWTcZFkdil6g?pwd=afes 提取码: afes

安装后一路next,然后配置环境变量

C:\Program Files\Tesseract-OCR

python web 图片转excel githup,github,python,excel

新建一个系统变量
python web 图片转excel githup,github,python,excel

问题2:程序如果报错信息:

 Error opening data file D:\\Tesseract-OCR/tessdata/chi_sim.traineddata

通过如下路径下载模型:https://github.com/tesseract-ocr/tessdata/blob/main/chi_sim.traineddata

存储到tessdata目录下,再次运行,程序成功执行。

python图片转excel

python web 图片转excel githup,github,python,excel
python web 图片转excel githup,github,python,excel
我的运行效果不是太好,好像说要训练什么的,我在代码中加了一行避免报错

    if len(item) >= 6:
脚本思路大致是:

使用OpenCV (cv2)读取图像文件。
将图像转换为灰度图,并应用自适应阈值处理,生成二值图像。
使用形态学运算识别表格的水平和垂直线。
检测线的交点,定位表格的单元格。
使用Tesseract OCR (pytesseract)从每个单元格提取文本。
清理提取的文本,去除特殊字符。
将提取的数据写入CSV文件。

import os

import cv2
import numpy as np
import pytesseract
from PIL import Image
import csv
import re
import json


def parse_pic_to_excel_data(src):
    raw = cv2.imread(src, 1)
    # 灰度图片
    gray = cv2.cvtColor(raw, cv2.COLOR_BGR2GRAY)
    # 二值化
    binary = cv2.adaptiveThreshold(~gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 35, -5)
    cv2.imshow("binary_picture", binary)  # 展示图片
    rows, cols = binary.shape
    scale = 40
    # 自适应获取核值 识别横线
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (cols // scale, 1))
    eroded = cv2.erode(binary, kernel, iterations=1)

    dilated_col = cv2.dilate(eroded, kernel, iterations=1)
    cv2.imshow("excel_horizontal_line", dilated_col)
    # cv2.waitKey(0)
    # 识别竖线
    scale = 20
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1, rows // scale))
    eroded = cv2.erode(binary, kernel, iterations=1)
    dilated_row = cv2.dilate(eroded, kernel, iterations=1)
    cv2.imshow("excel_vertical_line", dilated_row)
    # cv2.waitKey(0)
    # 标识交点
    bitwise_and = cv2.bitwise_and(dilated_col, dilated_row)
    cv2.imshow("excel_bitwise_and", bitwise_and)
    # cv2.waitKey(0)
    # 标识表格
    merge = cv2.add(dilated_col, dilated_row)
    cv2.imshow("entire_excel_contour", merge)
    # cv2.waitKey(0)
    # 两张图片进行减法运算,去掉表格框线
    merge2 = cv2.subtract(binary, merge)
    cv2.imshow("binary_sub_excel_rect", merge2)

    new_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (2, 2))
    erode_image = cv2.morphologyEx(merge2, cv2.MORPH_OPEN, new_kernel)
    cv2.imshow('erode_image2', erode_image)
    merge3 = cv2.add(erode_image, bitwise_and)
    cv2.imshow('merge3', merge3)
    # cv2.waitKey(0)
    # 识别黑白图中的白色交叉点,将横纵坐标取出
    ys, xs = np.where(bitwise_and > 0)
    # 纵坐标
    y_point_arr = []
    # 横坐标
    x_point_arr = []
    # 通过排序,获取跳变的x和y的值,说明是交点,否则交点会有好多像素值值相近,我只取相近值的最后一点
    # 这个10的跳变不是固定的,根据不同的图片会有微调,基本上为单元格表格的高度(y坐标跳变)和长度(x坐标跳变)
    i = 0
    sort_x_point = np.sort(xs)
    for i in range(len(sort_x_point) - 1):
        if sort_x_point[i + 1] - sort_x_point[i] > 10:
            x_point_arr.append(sort_x_point[i])
        i = i + 1
    x_point_arr.append(sort_x_point[i])  # 要将最后一个点加入

    i = 0
    sort_y_point = np.sort(ys)
    # print(np.sort(ys))
    for i in range(len(sort_y_point) - 1):
        if (sort_y_point[i + 1] - sort_y_point[i] > 10):
            y_point_arr.append(sort_y_point[i])
        i = i + 1
    # 要将最后一个点加入
    y_point_arr.append(sort_y_point[i])
    print('y_point_arr', y_point_arr)
    print('x_point_arr', x_point_arr)
    # 循环y坐标,x坐标分割表格
    data = [[] for i in range(len(y_point_arr))]
    for i in range(len(y_point_arr) - 1):
        for j in range(len(x_point_arr) - 1):
            # 在分割时,第一个参数为y坐标,第二个参数为x坐标
            cell = raw[y_point_arr[i]:y_point_arr[i + 1], x_point_arr[j]:x_point_arr[j + 1]]
            cv2.imshow("sub_pic" + str(i) + str(j), cell)

            # 读取文字,此为默认英文
            # pytesseract.pytesseract.tesseract_cmd = 'E:/Tesseract-OCR/tesseract.exe'
            text1 = pytesseract.image_to_string(cell, lang="chi_sim")

            # 去除特殊字符
            text1 = re.findall(r'[^\*"/:?\\|<>″′‖ 〈\n]', text1, re.S)
            text1 = "".join(text1)
            print('单元格图片信息:' + text1)
            data[i].append(text1)
            j = j + 1
        i = i + 1
    # cv2.waitKey(0)
    return data


def write_csv(path, data):
    with open(path, "w", newline='') as csv_file:
        writer = csv.writer(csv_file, dialect='excel')
        for item in data:
            # Check if the item list has at least 6 elements before accessing them
            if len(item) >= 6:
                writer.writerow([item[0], item[1], item[2], item[3], item[4], item[5]])



if __name__ == '__main__':
    file = "classTable.png"
    # 解析数据
    data = parse_pic_to_excel_data(file)
    # 写入excel
    write_csv(file.replace(".png", ".csv"), data)

下面是原作者写的博客

https://blog.csdn.net/sc9018181134/article/details/104577247文章来源地址https://www.toymoban.com/news/detail-813835.html

到了这里,关于github上的python图片转excel,pytesseract安装相关问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python获取excel 上的行数据

    你可以使用 Python 的第三方库 \\\"pandas\\\" 来读取 Excel 文件中的数据。首先,你需要安装 pandas 库,在命令行输入 pip install pandas 即可完成安装。 然后,你可以使用以下代码来读取 Excel 文件中的数据: 其中, sheet_name 参数指定要读取的工作表的名称,如果省略该参数,则默认读取

    2024年02月16日
    浏览(31)
  • RabbitMQ在Linux上的安装和相关配置

    RabbitMQ 是基于 Erlang 语言开发的 RabbitMQ官网地址 注意 : Erlang 和 RabbitMQ 版本是有相应的一个关系的如下图 3.9.13 的 Erlang 版本支持在 23.2~24.x 之间 执行语句 执行语句 执行语句 执行语句 执行语句 安装RabbitMQ可视化控制台 执行语句 或者使用以下方法 关闭与启动 ① 到指定目录

    2024年02月09日
    浏览(34)
  • 使用python,生成数字在图片上的验证码

    许多网站在注册时都要求输入验证码,这样做为了防止被程序恶意注册和保证网站安全 PIL(Python Imaging Library) 是一个强大的python图像处理库,只是支持到 python2.7 , Pillow虽说是PIL的一个分支,但是pillow支持python3.x,已经发展成比PIL本身更具活力的图像处理库,我们使用Pillow来生

    2024年02月10日
    浏览(33)
  • Python使用pytesseract进行验证码图像识别

    目录 图像读取主要用了两个库,不同的库是不同的对象: 本次图像识别测试需要以下两个条件: 1. 验证码获取 2. 登录网站 3. 图像处理 4. 验证码识别测试 测试说明 测试代码 测试结果 5. 成功示例的再识别测试 测试说明 测试代码 测试结果 测试注意事项 6. 集成融合投票模型

    2024年02月05日
    浏览(56)
  • python:xlwings 操作 Excel 加入图片

    pip install xlwings ; xlwings-0.28.5-cp37-cp37m-win_amd64.whl (1.6 MB) 摘要:Make Excel fly: Interact with Excel from Python and vice versa. Requires: pywin32 编写 xlwings_test.py 如下 运行 python xlwings_test.py  pip install openpyxl ; openpyxl-3.1.2-py2.py3-none-any.whl (249 kB) et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB) 摘要:A Python libra

    2024年02月07日
    浏览(49)
  • 用python中的pytesseract实现文字识别的教程

    目录 前言 代码前准备 调用模块 下载并安装pytesseract 介绍 下载安装 环境配置 代码实现 常见问题解答 本文章简单介绍如何用python中的pytesseract工具调用Tesseract库实现文字识别。本篇文章是搜集网络资料再结合本人的观点和思考编撰而成,在此十分感谢作者提供的帮助!

    2024年02月15日
    浏览(46)
  • python 批量将图片存入excel单元格内

    https://blog.csdn.net/wuyoudeyuer/article/details/128185284 以下是一个示例程序,可以实现将指定目录下的所有图片存储到Excel单元格内。注意需要安装openpyxl库和Pillow库。 以上代码会将指定目录下所有的.jpg或.png文件存储到Excel单元格中,并将单元格大小调整为适应图片大小。需要注意的

    2024年01月21日
    浏览(48)
  • Python OCR库比较:pyocr、pytesseract和python-tesseract

    在接口自动化工作中,经常需要处理文字识别的任务,而OCR(Optical Character Recognition,光学字符识别)库能够帮助我们将图像中的文字提取出来。Python中有几个常用的OCR库,包括pyocr、pytesseract和python-tesseract。本文将对它们进行比较,并提供一些示例代码来演示它们在实际接口

    2024年02月07日
    浏览(53)
  • python+opencv实现显示摄像头,截取相关图片,录取相关视频

    实时显示摄像头图像 按下空格键,截取图片 按下tab键,开始录制摄像内容,再次按下,结束录制  按下Esc键,关闭窗口 截图:  可以添加函数来使图像的显示效果改变(边缘检测效果): 自行在对应的帧显示处调用:  

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包