gpt4 book ai didi

python - 为多个类创建图像数据集

转载 作者:行者123 更新时间:2023-11-28 18:58:27 25 4
gpt4 key购买 nike

我是 python 的新用户,我的图像数据集代码需要一些帮助,我想以 (x_train, y_train), (x_test, y_test) 的形式制作数据集。我的目录中已有图像。我的数据集目录中有多个类,其中包含训练和测试文件夹。

我想从目录中读取整个图像。我已经尝试过一些代码,但它会引发错误。

row = 256
column = 256
channel = 3
class = 30 random

train = 'directory'
test = 'directory'
train_images = [train+i for i in os.listdir(train)]
test_images = [test+i for i in os.listdir(test)]

def read_image(filepath):
img = cv2.imread(filepath,cv2.IMREAD_COLOR)#i have RGB images
return
def prepare_data(images):
x = len(images)
y = np.zeros((x,row,column,channel),dtype=np.uint8)
z = np.zeros((class,x))
for i,image_file in enumerate(images)
a[i,:] = read image(image_file) #here how i get all images from different classes directories
if 'class1' in image_file.lower():
z[0,i] = class name1
elif 'class2' in image_file.lower():
z[1,i] = class name2
elif 'class3' in image_file.lower():
z[2,i] = class name3
...
....
....
return y,z

这里我遇到了一个问题,它无法访问来自不同类的整个图像。谁能帮我解决这个问题?

最佳答案

您可以遍历文件名,使用您编写的函数加载文件 - read_image() 并将其附加到列表中。同样根据名称条件,您也可以附加标签。

perpare_data() 函数的实现见下面的代码。

def prepare_data(images):

x, y = [], []

for image_file in images:
img = read_image(image_file)
x.append(img)

if 'class1' in image_file.lower():
y.append(class_name_1)
elif 'class2' in image_file.lower():
y.append(class_name_2)
elif 'class3' in image_file.lower():
y.append(class_name_3)

x = np.array(x)
y = np.array(y)

return x, y

您可以如下所示使用它来根据需要获取 xy 数组。

train_x, train_y = prepare_data(train_images)
test_x, test_y = prepare_data(test_images)

此外,您必须像这样更改路径定义,

train = 'directory//'
test = 'directory//'

在您提供的用于读取图像的代码中,您在读取图像后不会返回图像,请更新该代码,如下所示,

def read_image(filepath):
img = cv2.imread(filepath,cv2.IMREAD_COLOR)#i have RGB images
return img

关于python - 为多个类创建图像数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55604609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com