为什么图片提取内容信息的过程中会漏掉一张图片,而且每次运行代码都是这张图片漏掉?百思不得姐

市场核酸检测,完成后同事截图将检测名单手机截屏
问题相关代码,请勿粘贴截图
import os
import pytesseract as ptt
# 文字图片的路径
path1 = 'C:\\Users\\Administrator\\Desktop\\123\\'
path2 = r'C:/Users/Administrator/Desktop/'
# 获取图片路径列表
imgs = [path1 + i for i in os.listdir(path1)]

fd = open(path2 + 'text.txt', 'w+', encoding='utf-8')
f = open(path2 + 'hs123.txt', 'w+', encoding = 'utf8')
for img in imgs:
    fd.write(img + '\n')
    string = ptt.image_to_string(img, lang='chi_sim')
    f.write(string)
fd.close()
f.close()

运行结果及报错内容

结果文件夹中的图片目标写入text文档,但是里面的内容未被识别,也未写入hs123文档

我的解答思路和尝试过的方法

一开始以为是路径未识别,或图片名称未识别,但是加入text文档写入代码后,在text中看到了该图片名称,但是提取后在hs123文档中未看到该图片内的内容

img

我想要达到的结果

图片提取文字,文字中提取身份证号码,然后与登记总表匹配身份证号,下面代码是提取hs123文档中的身份证号码

#encoding:utf-8

# 数据导入和导出
# 本地读取

import pandas as pd
import numpy as np
import re
import regex
import openpyxl



filename = r'C:\Users\Administrator\Desktop\hs_idcard.xlsx'

df = open(r'C:\Users\Administrator\Desktop\123.txt', 'r', encoding='utf-8')



wb = openpyxl.Workbook()
sheet = wb.active
sheet.title ='身份证号码提取'
sheet['A1'] ='身份证号码'

#df_info = df.read()
#df_line = df.readlines()

hs_list = []
hs_list_IDcard = []
#print(df_info)
#print(df_line)
df.seek(0)
for line in df.readlines():  #按行读取 
    line = line.strip()  #去除前后空格
    if line in hs_list:
        pass
    else:
       
        hs_list.append(line)
hs_list = list(set(hs_list))  #去除列表中重复字符串 
#print(hs_list)

hs_data = np.array(hs_list).reshape(-1,1)
#print(hs_data)

for item in hs_data:
    m1=regex.compile('\d{17}[X]')
    m2=regex.compile('\d{18}')
    m3=regex.compile('\d{17}[x]')
    zjh1=m1.findall(item[0])
    for hm1 in zjh1:
        sheet.append([hm1])
    zjh2=m2.findall(item[0])
    for hm2 in zjh2:
        sheet.append([hm2])
    zjh3=m3.findall(item[0])
    for hm3 in zjh3:
        sheet.append([hm3])
wb.save(filename)

你print一下string内容看是否正确,感觉是你这个函数的问题

图片格式不兼容?

看起来 ptt.image_to_string函数对该张图片没有识别到想要的信息,返回了一个空值,你可以用这个函数单独处理一下缺失的图像,看看返回什么数据