赞
踩
我的图像数据集中有大约39000张图片
name label length width specific_value 0 013MNV9B.jpg 100.0 1254.0 600.0 2.090000 1 016ETNGG.jpg 50.0 1129.0 578.0 1.953287 2 018SUTBA.jpg 0.1 1241.0 600.0 2.068333 3 0192G5IC.jpg 5.0 1055.0 531.0 1.986817 4 01953EH7.jpg 100.0 1148.0 588.0 1.952381 5 01AUV9WG.jpg 10.0 1109.0 543.0 2.042357 .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 39614 ZYPNA2OR.jpg 0.1 585.0 315.0 1.857143 39615 ZYQN28G1.jpg 10.0 1358.0 600.0 2.263333 39616 ZYR5GNGS.jpg 10.0 1089.0 533.0 2.043152 39617 ZYSNFEBT.jpg 50.0 1207.0 600.0 2.011667 39618 ZYX4UQOE.jpg 100.0 1127.0 586.0 1.923208 39619 ZYX7STQF.jpg 0.5 858.0 414.0 2.072464
对图中的四列求均值
每张图片在经过opencv处理过后,得到的图像矩阵大小为(486,996),类型为numpy.ndarray。
[ 0 1 2 3 4 5 6 ... 989 990 991 992 993 994 995 0 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 1 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 2 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 3 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 4 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 478 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 479 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 480 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 481 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 482 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 483 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 484 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 485 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255 [486 rows x 996 columns]]
将(图像矩阵,label)存放在DataFrame中,并保持图像矩阵的维度信息
创建一个空列表list
将图像矩阵转为DataFrame类型
将图像矩阵、标签作为一个列表放入list中
通过遍历所有图像矩阵、标签,依次放入list中,可以得到一个形如下边的列表list
[
[DataFrame,label]
]
最后将列表list传递给一个新的DataFrame,即可得到最终的DataFrame
datasets=pd.DataFrame() #创建一个空的DataFrame用来放全部的数据 i=0 arr = [] #创建一个列表用来,依次添加[图像矩阵、标签] for data in get_true_dataframe().itertuples(): #print(data) image_name=data[1] print(type(data[2])) #print(image_name) image_path = os.path.join(image_dir, image_name) #print(image_path) dit=image_processing(image_path) #这个函数的作用是用opencv对图像进行处理 dit_dataframe=pd.DataFrame(dit) arr.append([dit_dataframe,data[2]]) if i>3: break i=i+1 print('*********************************************************'+str(i)) # print(arr) data_1=pd.DataFrame(arr) print(data_1) print(type(data_1)) print('-----------------------------------------------------------') print(data_1.iloc[0:1,0:1].values) print(type(data_1.iloc[0:1,0:1]))
最终的DataFrame是这个样子
0 1
0 0 1 2 3 4 5 6 ... 9... 100.0
1 0 1 2 3 4 5 6 ... 9... 50.0
2 0 1 2 3 4 5 6 ... 9... 0.1
3 0 1 2 3 4 5 6 ... 9... 5.0
4 0 1 2 3 4 5 6 ... 9... 100.0
<class 'pandas.core.frame.DataFrame'>
取出第一行第一列的元素
[[ 0 1 2 3 4 5 6 ... 989 990 991 992 993 994 995
0 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255
1 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255
2 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255
3 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255
4 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255
.. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
483 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255
484 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255
485 255 255 255 255 255 255 255 ... 255 255 255 255 255 255 255
[486 rows x 996 columns]]]
<class 'pandas.core.frame.DataFrame'>
可以看到,图像矩阵的维度信息保存完好!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。