FRANCISHUI 2021-10-13 21:14 采纳率: 0%
浏览 39
已结题

HWDB1.1 gnt转化为gnt后数据不全

最近在学习pytorch,在做一个手写体汉字识别的demo,用到的数据集时HWDB1.1tst_gnt和HWDB1.1trn_gnt。原始数据集经过解压后,将.gnt转化为.png文件,在转化过程中发现断断续续会有一些图片丢失,不知道问题出现在哪里?
附上转化代码

# coding=utf-8
import struct
import os
from PIL import Image

DATA_PATH = "D:/Dataset/HWDB/HWDB1.1tst_gnt/HWDB1.1trn_gnt"  # gnt数据文件路径
IMG_PATH = "../data/test"  # 解析后的图片存放路径
# print("start")
files = os.listdir(DATA_PATH)
num = 0
for file in files:
    tag = []
    img_bytes = []
    img_wid = []
    img_hei = []
    f = open(DATA_PATH + "/" + file, "rb")
    while f.read(4):
        tag_code = f.read(2)
        tag.append(tag_code)
        width = struct.unpack('<h', bytes(f.read(2)))
        height = struct.unpack('<h', bytes(f.read(2)))
        img_hei.append(height[0])
        img_wid.append(width[0])
        data = f.read(width[0] * height[0])
        img_bytes.append(data)
    f.close()
    for k in range(0, len(tag)):
        im = Image.frombytes('L', (img_wid[k], img_hei[k]), img_bytes[k])
        if os.path.exists(IMG_PATH + "/" + tag[k].decode('gbk')):
            im.save(IMG_PATH + "/" + tag[k].decode('gbk') + "/" + str(num) + ".png")
        else:
            os.mkdir(IMG_PATH + "/" + tag[k].decode('gbk'))
            im.save(IMG_PATH + "/" + tag[k].decode('gbk') + "/" + str(num) + ".png")
    num = num + 1
print(tag.__len__())
print("successful!")
# files = os.listdir(IMG_PATH)
# n = 0
# f = open("label.txt", "w")  # 创建用于训练的标签文件
# for file in files:
#     files_d = os.listdir(IMG_PATH + "/" + file)
#     for file1 in files_d:
#         f.write(file + "/" + file1 + " " + str(n) + "\n")
#     n = n + 1

这是转化测试集的代码,测试集图片的总数量应该是60*3375=202500,但经过脚本统计发现总数为223716,部分缺失记录如下图:

img

这个问题出现在哪里?请问该如何解决?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月21日
    • 创建了问题 10月13日

    悬赏问题

    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!
    • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
    • ¥15 求daily translation(DT)偏差订正方法的代码
    • ¥15 js调用html页面需要隐藏某个按钮
    • ¥15 ads仿真结果在圆图上是怎么读数的
    • ¥20 Cotex M3的调试和程序执行方式是什么样的?
    • ¥20 java项目连接sqlserver时报ssl相关错误
    • ¥15 一道python难题3
    • ¥15 牛顿斯科特系数表表示