图像处理-如何将图像列表及其标签存储在一键编码的ndarray中?

时间:2018-10-03 20:53:27

标签: python numpy opencv image-processing multidimensional-array

我有1976个训练图像的文件夹。每个图像都有一个形状(118,128,1)(灰度图像)。我创建了一个包含所有图像的数组:

import glob
import scipy
import cv2

images = [cv2.imread(path, 0) for path in glob.glob('rootDir/train/*.png')]
images = np.asarray(images)

产生:

images 
out[0]  array([[[ 38,  47,  51, ...,  53,  53,  46],
            [ 48,  49,  50, ...,  53,  50,  51],
            [ 48,  51,  53, ...,  54,  50,  51],
            ...,
            [ 59,  61,  57, ..., 194, 195, 200],
            [ 76,  71,  65, ..., 212, 212, 199],
            [ 81,  80,  77, ..., 179, 184, 197]],
            ....

images.shape
out[1]: (1976, 128, 118)

现在的事情是,我将图像的标签以以下格式存储在csv文件中:

id,appliance
1000,8
1001,1
1002,8
1003,1
1004,6
1005,1
1006,1
1007,2
1008
1009,5
1010
1011,3
1012,2
....

id与每个图像的文件名匹配,“设备”列包含分配给每个图像进行训练的标签值。

为了使用CNTK将数据提供给CNN模型,我需要将图像数据转换为具有图像特征及其标签的单点编码数组。我想要的预期输出将是这样的:

|labels 0 0 0 1 0 0 0 0 0 0 |features 0 0 0 0 ... 
                                              (15104 integers each representing a pixel)

我完全迷失了,感谢对此的任何帮助。

根据DAN-MASEK的评论进行编辑:

丹,您好,这是错误的屏幕截图:

Screenshot

就像我之前说的,我像这样设置变量ID_APP_MAP_FILENAME ='train_labels.csv'。告诉我您是否需要任何进一步的信息。谢谢

0 个答案:

没有答案