学习DFV过程中,需要查看DDFF-12数据集。DFV使用的DDFF-12是自己处理过的,文件格式为H5,需要使用H5py库来处理该文件。
import h5py # 读取文件 ddffdataset = h5py.File('E:\dataset\my_ddff_trainVal.h5', 'r') # 显示数据集中的所有数据构成种类 print(ddffdataset.keys()) #可以得到如下 <KeysViewHDF5 ['AiF_train', 'AiF_val', 'disp_train', 'disp_val', 'stack_train', 'stack_val']>
讯享网
由上可知,该划分数据集中包含三种数据,分别是全聚焦图像,验证集图像与训练集图像。
我们可以使用这些key值来得到对应的数据种类,并且使用索引值对其内容进行访问。
讯享网imgs= ddffdataset['stack_train'] disps= ddffdataset['disp_train'] lenimg = len(imgs)# 400 lendisp = len(disps) import np img = imgs[0] print(img.shape) # (10, 383, 552, 3) img = imgs[0][0] print(img.shape) # (383, 552, 3)
由论文可知,DDFF一共有12个场景,DFV选择了其中六个场景作为训练集与验证集。每个场景包含10张图片,因此一共有400张训练图片,200张验证集图片。一级索引可以拿出一个场景,二级索引可以拿出场景10张图片中的某一张。
我们可以使用Opencv 或者是matplotlib来查看这些图片,值得注意的是,opencv读取的是BGR图片,而Matplotlib读取的是RGB图片。
import cv2 cv2.imshow('img', img) cv2.waitKey()

发现图片全白。原因在于h5文件的图片数据保存方式。图片数据是以0-255之间的数字来保存的,而不是0-1之间的数字。而opencv的imshow要求图片数据是范围在0-1之间的浮点数。
讯享网print(img) [[[193. 212. 210.] [176. 211. 204.] [184. 211. 206.] ... [204. 235. 234.] [204. 236. 235.] [206. 230. 230.]] [[215. 246. 238.] [210. 244. 234.] [208. 243. 234.] ... [221. 251. 248.] [222. 251. 248.] [220. 250. 245.]] [[209. 243. 233.] [207. 241. 230.] [204. 242. 231.] ... [216. 252. 246.] [222. 251. 246.] [217. 249. 245.]] ... [[ 75. 84. 87.] [ 57. 72. 65.] [ 60. 74. 70.] ... [135. 165. 169.] [134. 166. 171.] [119. 146. 149.]] [[ 73. 78. 82.] [ 56. 61. 63.] [ 54. 66. 65.] ... [121. 163. 164.] [126. 170. 167.] [116. 148. 147.]] [[ 93. 110. 112.] [ 75. 95. 99.] [ 81. 98. 100.] ... [146. 179. 181.] [148. 184. 184.] [137. 168. 166.]]]
因此我们把图片数据除以255,得到如下结果。
img = np.array(imgs[0][0]/255) cv2.imshow('img', img) cv2.waitKey()


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/30493.html