python - 使用 open cv 读取图像时遇到问题

标签 python pandas numpy opencv image-recognition

我有一个名为“seg_train”的文件夹,其中有 6 个带标签的文件夹:建筑物、树木、街道、冰川、森林、海洋和山脉。我正在尝试使用 open cv 读取这些文件夹中的所有图像,为此我编写了一个函数,但我不知道我做错了什么。这6个文件夹总共大约有14000个文件,但我编写的函数只从一个文件夹中读取2300个文件。能否请你帮忙? 这是Python代码

result- Shape of Images: (2382, 150, 150, 3)

Shape of Labels: (2382,)

i was expecting (14000,150,150,3)

for image_file in os.listdir(r'C:/Users/dhvan/Desktop/intel-image-classification/seg_train/seg_train/'+ labels):
    image = cv2.imread(r'C:/Users/dhvan/Desktop/intel-image-classification/seg_train/seg_train/' + labels + r'/'+ image_file)
    image = cv2.resize(image,(150,150))
    
    Images.append(image)
    Labels.append(label)
return shuffle(Images,Labels,random_state=812490023) 

最佳答案

我建议使用下面的代码。另外,我认为如果您尝试读取 14000 个大小为 (150,150,3) 的图像,您将收到资源耗尽错误,因为这将使用非常大的数量 的内存。如果您正在构建 CNN 分类器,我建议您使用 Keras ImageDataGenerator.flowfrom 目录批量读取图像,文档位于此处 https://keras.io/preprocessing/image/

import os
dir=r'C:/Users/dhvan/Desktop/intel-image-classification/seg_train/seg_train'
path_to_labels=os.path.join (dir, 'labels')
dir_list=os.listdir(path_to_labels)
for images in dir_list:
    path_to_images=os.path.join (path_to_labels, images)
    cv2.imread(path_to_images)

关于python - 使用 open cv 读取图像时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60252227/

相关文章:

python - Scrapy爬虫不处理XHR请求

python - 查找并打印子元素具有相似值的所有行

python - 填充 numpy 数组的元素

python - Pandas read_table() 缺少行

python - python 类 __init__ 方法会隐式返回 None 吗?

python:扁平化为列表列表但仅此而已

sql-server - 将存储过程选择结果读入 pandas 数据帧

python - 使用来自特定列的信息将函数应用于 Pandas 数据帧的每个单元格

python - 文件名(来自多个文件)作为一个数据框中的列名

python - 为什么我不能在一行中交换列表中的两个项目?