h5py,访问SVHN中Datasets中的数据

2023-11-22

我想读书街景门牌号 (SVHN) 数据集通过使用h5py

In [117]: def printname(name):
     ...:     print(name)
     ...:

In [118]: data['/digitStruct'].visit(printname)
bbox
name

数据中有两组,bbox and name, name是与文件名数据对应的组名,并且bbox是宽度、高度、顶部、左侧和标签数据对应的组名称。

如何访问其中的所有数据name and bbox group?

我尝试过使用以下代码Docs,但它只返回 HDF5 对象引用。

In [119]: for i in data['/digitStruct/name']:
     ...:     print(i[0])
     ...:
     ...:
<HDF5 object reference>
<HDF5 object reference>
<HDF5 object reference>
<HDF5 object reference>
<HDF5 object reference>
<HDF5 object reference>

Python 版本:3.5 操作系统:Windows 10。


阅读完文档后,我将在这里回答我的问题h5py,这是我的代码

def get_box_data(index, hdf5_data):
    """
    get `left, top, width, height` of each picture
    :param index:
    :param hdf5_data:
    :return:
    """
    meta_data = dict()
    meta_data['height'] = []
    meta_data['label'] = []
    meta_data['left'] = []
    meta_data['top'] = []
    meta_data['width'] = []

    def print_attrs(name, obj):
        vals = []
        if obj.shape[0] == 1:
            vals.append(obj[0][0])
        else:
            for k in range(obj.shape[0]):
                vals.append(int(hdf5_data[obj[k][0]][0][0]))
        meta_data[name] = vals

    box = hdf5_data['/digitStruct/bbox'][index]
    hdf5_data[box[0]].visititems(print_attrs)
    return meta_data

def get_name(index, hdf5_data):
    name = hdf5_data['/digitStruct/name']
    return ''.join([chr(v[0]) for v in hdf5_data[name[index][0]].value])

这里的hdf5_data is train_data = h5py.File('./train/digitStruct.mat'),效果很好!

Update

这是使用上述两个函数的一些示例代码

mat_data = h5py.File(os.path.join(folder, 'digitStruct.mat'))
size = mat_data['/digitStruct/name'].size

for _i in tqdm.tqdm(range(size)):
    pic = get_name(_i, mat_data)
    box = get_box_data(_i, mat_data)

上面的函数展示了如何获取数据的每个条目的名称和bbox数据!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

h5py,访问SVHN中Datasets中的数据 的相关文章

随机推荐

  • qemu-system-x86_64 :地址解析失败 ::1:46189:名称或服务未知

    我有以下问题 当我跑步时emulator avdname抛出以下错误 qemu system x86 64 chardev socket port 46189 host 1 nowait nodelay ipv6 id modem addr
  • 应用程序传输安全策略要求使用安全连接 - IOS 9

    我在使用 IP 地址连接 API 时遇到问题 即使我将以下代码添加到 plist 它仍然显示错误 如下所示 http xx3 xx xx8 xx7 xxx xxx 错误 无法加载资源 因为应用程序传输安全策略需要使用安全连接 这是我添加到
  • 获取特定用户的 CVS 历史记录

    如何获取特定用户对存储库所做的提交历史记录 我可以通过命令行或 TortoiseCVS 访问 CVS 因此使用任一方法的解决方案就足够了 作为一名编码员 我最感兴趣的是提交更改 而不是标记 分支等 因此我通常包括 c还有提交选项 cvs h
  • “ng-select”不是已知元素

    这是我的代码 我想在我的表格上添加https github com ng select ng select多选标签输入 组件 模块 ts import NgModule from angular core import CommonModu
  • 运行 shell 脚本时如何在 Jenkins 中标记构建不稳定

    在我正在进行的一个项目中 我们使用 shell 脚本来执行不同的任务 有些是运行 rsync 的 sh bash 脚本 有些是 PHP 脚本 PHP 脚本之一正在运行一些集成测试 这些测试输出到 JUnit XML 代码覆盖率报告等 詹金斯
  • meteorJS 从服务器调用 shell 命令

    我正在使用 MeteorJS 我想从 javascript 服务器端调用 bash 命令 这对于 NodeJS 来说似乎是可能的 http www dzone com snippets execute unix command nodejs
  • 获取多选中最后单击的选项

    在页面上 我有一个包含许多选项的选择 多个 框 现在我想对最后单击的项目做出反应 以使用 ajax 显示一些数据 由于选项元素上的 click 事件在 IE 中不起作用 我目前使用 change 事件 问题是 value 和 selecte
  • 如何使用 jQuery 在单击按钮时显示表格的另外 5 行

    我预加载了一个表及其所有行 但是 我只想显示其中的前 10 行 tbody 标签 现在每个 tr 在表中 这是我到目前为止所做的 var trs internalActivities gt table gt tbody gt tr trs
  • 骆驼、JMS、CLIENT_ACKNOWLEDGE 模式

    我知道Camel的JMS组件用于接收消息 使用Springs DefaultMessageListenerContainer 可以将其配置为使用 CLIENT ACKNOWLEDGE 模式来确认消息 我的问题是 什么时候调用 message
  • 从 PhpStorm 2017.1 检索保存(隐藏)的 SSH 密码

    我忘记了远程服务器的 SSH 密码 但它以隐藏方式保存在 IDE PhpStorm 2017 1 中 有什么办法可以查看隐藏密码吗 我终于可以从 PhpStorm 2017 1 检索密码 Go to 设置 首选项 外观与行为 系统设置 密码
  • PHP MySQLi multi_query 准备好的语句

    我想知道是否可以为 MySQLi multi query 准备多个语句 No mysqli multi query采用查询字符串作为其参数 而不是准备好的语句 mysql prepare只能准备一个语句 查询必须由单个 SQL 语句组成
  • 将 API 函数包装在 RxJs Observable 中

    我是 RxJs 的新手 我有一个用于地理编码的 API 它提供了如下所示的功能 simpleGeocode options where options address addr success Function failure Functi
  • ro.sf.lcd_密度必须定义为构建属性

    在模拟器上运行应用程序时 我遇到了这些错误 我该如何解决这个问题才能使我的程序更加可靠 error 01 16 11 06 49 211 E SurfaceFlinger 37 ro sf lcd density must be defin
  • 用C处理音频wav文件

    我正在处理 wav 文件的幅度并按某个小数因子缩放它 我正在努力思考如何以节省内存的方式读取和重写文件 同时也尝试解决该语言的细微差别 我是 C 语言的新手 该文件可以是 8 位或 16 位格式 我想到这样做的方法是首先阅读标头数据到一些预
  • 为什么要缓存 jQuery 对象?

    那么为什么我们要缓存 jQuery 对象呢 在以下场景中 var foo bar foo attr style cool foo attr width 123 bar attr style cool bar attr width 123 为
  • 使用 Git 创建更改文件的存档

    我正在寻找一个简单的解决方案来存档最近更改的文件 我得到这个简单的命令google git archive o update zip HEAD git diff name only HEAD 当我在 GIT BASH 中运行它时 它一直说致
  • 如何编写 ANSI C 控制台屏幕缓冲区?

    我正在制作一个基于 ASCII 的游戏 到处都有人说要使用 MSDN 中的 Console Write 如果你使用的是 Windows 那就太棒了 但我没有 因此 我尝试用 C 语言编写一个函数或一组函数 可以在两个屏幕缓冲区之间交替 并将
  • NameValuePair 在 API 22 中已弃用

    现在 namevaluepair 在 API 22 中已被弃用 如果我想实现 namevaluepair 接口 我该怎么办 下面是我的代码 package com example passpass import org apache htt
  • Python csv:UnicodeDecodeError

    我正在用Python读取一个文件csv模块 并且还有另一个编码问题 抱歉 这里有太多问题 在 CSV 文件中 有 符号 读入该行并打印后 它们已变为 xa3 尝试将它们编码为 Unicode 会产生UnicodeDecodeError ro
  • h5py,访问SVHN中Datasets中的数据

    我想读书街景门牌号 SVHN 数据集通过使用h5py In 117 def printname name print name In 118 data digitStruct visit printname bbox name 数据中有两组