当前位置:   article > 正文

在处理图像数据集时保持其维度信息的同时,将全部图像、标签放到一个Dataframe中_img data 可以存入dataframe 里面吗?

img data 可以存入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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

对图中的四列求均值
在这里插入图片描述
每张图片在经过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]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

达到的目的

将(图像矩阵,label)存放在DataFrame中,并保持图像矩阵的维度信息

首先

创建一个空列表list
将图像矩阵转为DataFrame类型
将图像矩阵、标签作为一个列表放入list中
通过遍历所有图像矩阵、标签,依次放入list中,可以得到一个形如下边的列表list

[
	[DataFrame,label]
							]
  • 1
  • 2
  • 3

最后将列表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]))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

最终的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'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

验证

取出第一行第一列的元素

[[     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'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/462023
推荐阅读
相关标签
  

闽ICP备14008679号