在处理图像数据集时保持其维度信息的同时,将全部图像、标签放到一个Dataframe中

数据集

我的图像数据集中有大约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'>

可以看到,图像矩阵的维度信息保存完好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值