python - 如何将 .mat 文件转换为 Berkeley Segmentation Dataset 500 中的 .tif 图像?
问题描述
我正在研究“Berkeley Segmentation Dataset 500”,我想查看 ground_truth 图像,但它们是 file.mat,我无法将它们转换为 .tif 或 .jpeg(任何转换都可以)。
我试图检查 file.mat
import scipy.io
mat = scipy.io.loadmat('Dataset/ground_truth/train/2092.mat')
mat 是具有以下键的字典:globals,header,version,groundTruth
globals是一个空列表
header是类型bytes
,它有大小74
和值MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Thu Oct 29 09:24:04 2009
版本是类型str
,它有大小3
和价值1.0
groundTruth是类型Array of object
,它有大小(1, 7)
和价值ndarray object of numpy module
我认为基本事实是我正在寻找的图像。
value=mat['groundTruth'][0][0]
值为array of void128
, 大小 (1,1) 并且值为ndarray object of numpy module
如果我打印价值,我会得到以下信息:
array([[(array([[ 1, 1, 1, ..., 1, 1, 1],
[ 1, 1, 1, ..., 1, 1, 1],
[ 1, 1, 1, ..., 1, 1, 1],
...,
[15, 15, 15, ..., 15, 15, 15],
[15, 15, 15, ..., 15, 15, 15],
[15, 15, 15, ..., 15, 15, 15]], dtype=uint16), array([[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0],
...,
[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0]], dtype=uint8))]],
dtype=[('Segmentation', 'O'), ('Boundaries', 'O')])
我认为我关心的图像是第一个,所以我尝试这样做:
segmentation = a['Segmentation']
但是,分割是Array of object
,它有大小(1,1)
,值是ndarray object of numpy module
。问题是它有大小 (1,1) 但是当我打印它时,它不是一个单一的值。任何人都可以帮助我吗?我不知道如何处理这些数据
解决方案
推荐阅读
- node.js - NestJS TypeORM for MongoDB 在插入后崩溃
- ios - 如何在 MacOS 上直接运行 objcgen 进行 .NET 嵌入
- actionscript-3 - 为什么有时过于复杂和隐瞒答案?
- video - videojs html5视频检索相对于实时内容的绝对时间
- python - Web 将房地产网页抓取到 DataFrame
- html - 图像的 CSS Float 无法正常工作
- android - Android Studio 调试器意外停止
- node.js - Firebase 云消息通知模型
- css - 向 Bokeh Tabs 小部件添加自定义样式
- oracle - UNION 和 IN 运算结果集不匹配