img_path = 'dataul/testul/test'
img_path2 = 'dataul/testul.pickle'
file_path = 'dataul/csvul/test.csv'

imglist_file = pd.read_csv(file_path)

batch_label = 'cancer images'

# nrows = len(imglist_file)

index = 0
k = 1
labels = []
filename_list = []
num = 0
imgs = np.empty(27648,)
for i in os.listdir(img_path):
    path = os.path.join(img_path, i)
    img = cv2.imread(path)
    img = cv2.resize(img, (96, 96))
    img = np.array(img)
    #cv2.imshow('IMREAD_COLOR+Color', img)
    #cv2.waitKey()
    b, g, r = cv2.split(img)
    img_array = np.concatenate((r, g, b), axis=0)
    array1 = img_array.flatten()
    #print(array1)
    print(array1.shape)
    imgs = np.vstack([imgs,array1])
        
    labels.append(imglist_file['label'][num])
   # labels.append(imglist_file['label2'][num])
    num = num +1
    print(num)

#    filename_list.append(i[:-4] + '.png')

#    for j in range(k, nrows):
#        if imglist_file['id'][j] == i:
#            labels.append(imglist_file['label'][j])
#            k = j

imgs = np.delete(imgs, 0, axis=0)
print(labels)
print(len(labels))
print(imgs)
print(imgs.shape) 
#print(imgs.shape)
#print(filename_list)

##Save data to file
d_decoded = {}
with open(img_path2, 'wb+') as f:
    d_decoded[b'batch_label'] = batch_label
    d_decoded[b'labels'] = labels
    d_decoded[b'data'] = imgs
    d_decoded[b'filenames'] = filename_list
    pickle.dump(d_decoded, f)
    #print(d_decoded)

该代码主要功能是将指定文件夹中的图像数据读取并转换为NumPy数组格式,并将其与标签信息一起保存到Pickle文件中。

首先,通过读取CSV文件中的标签信息,获取每个图像对应的标签。然后,通过遍历指定文件夹中的图像文件,将图像读取并缩放到96x96像素大小,然后将其转换为NumPy数组格式,并将R、G、B三个通道的像素值按照顺序合并成一个一维数组。最后,将所有图像的数组按行堆叠成一个矩阵,将标签信息保存到列表中。

最后,将所有数据保存到Pickle文件中,其中包括batch_label、labels、data和filenames四个数据项。其中,batch_label为数据集标签,labels为所有图像对应的标签,data为所有图像的像素值矩阵,filenames为所有图像的文件名列表。
图像数据预处理与保存:将图像转换为NumPy数组并保存到Pickle文件

原文地址: https://www.cveoy.top/t/topic/f1KB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录