NYU-V2数据集预处理

时间:2018-12-19
本文章向大家介绍NYU-V2数据集预处理,主要包括NYU-V2数据集预处理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

我下载的是带标签的NYUV2数据集,下载写来的格式是.mat
原图,深度图,labels的提取方式参考此博客

提取各类名称保存为txt

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio
import h5py
import os
from PIL import Image

f=h5py.File("./nyu_depth_v2_labeled.mat")

ft = open('names.txt', 'w+')
#print(f["names"].shape) #打印查看类别个数,共894类
for j in range (893):
    name = f["names"][0][j]
    obj = f[name]
    strr = "".join(chr(i) for i in obj[:])
    ft.write(strr + '\n')

ft.close()

提取原图images(RGB图)

import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio
import h5py
import os
f=h5py.File("./nyu_depth_v2_labeled.mat")
images=f["images"]
images=np.array(images)
 
path_converted='./nyu_images'
if not os.path.isdir(path_converted):
    os.makedirs(path_converted)
 
from PIL import Image
images_number=[]
for i in range(len(images)):
    print(i)
    images_number.append(images[i])
    a=np.array(images_number[i])
#    print len(img)
    #img=img.reshape(3,480,640)
 #   print img.shape
    r = Image.fromarray(a[0]).convert('L')
    g = Image.fromarray(a[1]).convert('L')
    b = Image.fromarray(a[2]).convert('L')
    img = Image.merge("RGB", (r, g, b))
    img = img.transpose(Image.ROTATE_270)
   # plt.imshow(img)
   # plt.axis('off')
   # plt.show()
    iconpath='./nyu_images/'+str(i)+'.jpg'
    img.save(iconpath,optimize=True)

提取深度图(depth map)

import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio
import h5py
import os
from PIL import Image
 
f=h5py.File("./nyu_depth_v2_labeled.mat")
depths=f["depths"]
depths=np.array(depths)
path_converted='./nyu_depths/'
if not os.path.isdir(path_converted):
    os.makedirs(path_converted)
max=depths.max()
print (depths.shape)
print (depths.max())
print (depths.min())
 
depths=depths/max*255
depths=depths.transpose((0,2,1))
print (depths.max())
print (depths.min())
 
for i in range(len(depths)):
    print (str(i)+'.png')
    depths_img=Image.fromarray(np.uint8(depths[i]))
    depths_img=depths_img.transpose(Image.FLIP_LEFT_RIGHT)
 
    iconpath = path_converted + str(i) + '.png'
    depths_img.save(iconpath, 'PNG', optimize=True)

提取labels

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio
import h5py
import os
from PIL import Image
f=h5py.File("./nyu_depth_v2_labeled.mat")
labels=f["labels"]
labels=np.array(labels)
 
path_converted='./nyu_labels'
if not os.path.isdir(path_converted):
    os.makedirs(path_converted)
 
labels_number=[]
for i in range(len(labels)):
    labels_number.append(labels[i])
    labels_0=np.array(labels_number[i])
    #print labels_0.shape
    print (type(labels_0))
    label_img=Image.fromarray(np.uint8(labels_number[i]))
    #label_img = label_img.rotate(270)
    label_img = label_img.transpose(Image.ROTATE_270)
 
    iconpath='./nyu_labels/'+str(i)+'.png'
    label_img.save(iconpath, 'PNG', optimize=True)