转换bsds500数据集

bsds500数据集在轮廓和分割使用很频繁,但是数据本身是保存成.mat的,不是我们常用的图片格式,.mat实际上是一堆json格式的文件,是MATLAB保存的,为了方便我们常规使用,我打算将其转成.jpg

数据集下载:

链接:
提取码:3faz

打印.mat文件

x=io.loadmat('D:\\BSR_bsds500\\BSR\BSDS500\\data\\groundTruth\\train\\12003.mat')

print(x.keys())

我们可以看到:

dict_keys(['__globals__', 'groundTruth', '__header__', '__version__'])

说明我们这个.mat文件文件里面是一堆这样的key

可以把读取的内容打印出来:

截取其中一部分,我们可以看到实际上这里存了两种数据,一种是轮廓一种是分割

dtype=[('Segmentation', 'O'), ('Boundaries', 'O')]
x['groundTruth'][0][0][0][0][1]为轮廓
x['groundTruth'][0][0][0][0][0]为分割图

现在可以直接上代码进行转换:

import numpy as np
#import matplotlib.pyplot as plt
from scipy import io
import scipy
import os


PATH = os.path.join(os.path.dirname('D:\\BSR_bsds500\\BSR\BSDS500\\data\\groundTruth\\'), 'D:\\BSR_bsds500\\BSR\BSDS500\\data\\groundTruth\\')
"""处理train"""
train_list =os.listdir(PATH+'train')
print(len(train_list))
for index in train_list:
    name=index.split('.')[0]
    print(name)
    train=io.loadmat(PATH+'\\train\\'+index)
    #print(train)
    a=np.array(1024)
    a=train['groundTruth'][0][0][0][0][1]
    print(a)
    a=a*255
    print(PATH+'trans\\train\\'+str(name))
    scipy.misc.imsave(PATH+'trans\\train\\'+str(name)+'.jpg', a)#保存图片
    

"""处理test"""
test_list =os.listdir(PATH+'test')
print(len(test_list))
for index in test_list:
    name=index.split('.')[0]
    print(name)
    test=io.loadmat(PATH+'\\test\\'+index)
    #print(train)
    a=np.array(1024)
    a=test['groundTruth'][0][0][0][0][1]
    print(a)
    a=a*255
    print(PATH+'trans\\test\\'+str(name))
    scipy.misc.imsave(PATH+'trans\\test\\'+str(name)+'.jpg', a)#保存图片

"""处理val"""
val_list =os.listdir(PATH+'val')
print(len(val_list))
for index in val_list:
    name=index.split('.')[0]
    print(name)
    val=io.loadmat(PATH+'\\val\\'+index)
    #print(train)
    a=np.array(1024)
    a=val['groundTruth'][0][0][0][0][1]
    print(a)
    a=a*255
    print(PATH+'trans\\val\\'+str(name))
    scipy.misc.imsave(PATH+'trans\\val\\'+str(name)+'.jpg', a)#保存图片

转换结果:

 

现在我们就可以得到转换的数据集了,如果不想转换可以直接下载,我这里已经转成功:

链接:
提取码:4gab

 

 

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值