需要用python进行数据整理,将raw data整理成CNN可以识别的形式.在整理数据的时候用的python语言.
- 读取整个文件夹下面的文件名
list = os.listdir("Kinfu_Toolbox1_dark/rgb_noseg")
然后这个list里面就是所有的文件名
如果想读取某个文件路径里面的文件名,或者最后一个文件夹的名字 用split命令
fpath, fname=os.path.split(filepath)
如果想读取一个字符串里面的数字,(比如 "91818aik011", 读出来是"91818011")
number=filter(str.isdigit, fname)
判断number是不是空的
if number =="":
print "no number in the file name"
f=open(txtpath) #读取txt文件,把整个文件放进f里面
lines= f.read().splitlines() #把整个文件放入一个list,这个方法比较好
transf_str=lines[8] #读列表的第8行 transf_str 是一个string
transf_list = [float(x) for x in transf_str.split()]
#convert the str into list
transf_matrix=array(transf_list) #convert the list into array
label[0,4:7]=transf_matrix #赋值给label
#依次做上面的事情
for index in range(4, 7):
rotation_str=lines[index]
rotation_list = [float(x) for x in rotation_str.split()]
rotation_matrix[index-4]=array(rotation_list)
#print rotation_matrix
quation= mat2quat(rotation_matrix) #旋转矩阵转换成四元数
label[0,:4]=quation
值得注意的是如何安装第三方包 transforms3d
用
pip install transform3d
这样 不会产生路径找不到的问题.
写HDF5 文件
with h5py.File('train.h5', 'w') as f:
f['data'] = img_mid #read image into a numpy darray
f['label'] = label_mid
f.close()
读取HDF5 文件
f = h5py.File(filename, 'r') # read h5 file
label=f['label'] #'label' is the group in h5 now transfer it to the variable
print label.shape #label now is a numpy darray
print type(label)
print label[3,:]
img=f['data'][19,:,:,:] #read another data which actually is a image
print img.shape
print img
cv2.imshow("4", img)
python opencv 读取图片 并显示
img = cv2.imread(img_path, cv2.IMREAD_COLOR)
cv2.imshow("4", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
但是!!!!
这时候 img是个dnarray 如果你对他进行操作之后再读数据
网友评论