Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 未根据使用imagedatagenerator和flow定义的范围创建图像_Opencv_Tensorflow_Machine Learning_Keras_Computer Vision - Fatal编程技术网

Opencv 未根据使用imagedatagenerator和flow定义的范围创建图像

Opencv 未根据使用imagedatagenerator和flow定义的范围创建图像,opencv,tensorflow,machine-learning,keras,computer-vision,Opencv,Tensorflow,Machine Learning,Keras,Computer Vision,我已经编写了一个用于数据扩充和仅保存图像的代码。尚未创建任何模型。我计划先创建增强图像,然后再训练我的模型。问题是并不是所有的图像都被用于增强和保存。 我有275张图像,范围为50张,这意味着总共创建了13750张图像,但是我从增强中只得到了7500张图像。我试着调试,发现在读取图像和增强图像时没有问题,而是在增强图像。Follow方法不保存图像。当save_format参数选择为jpeg时,情况会变得更糟。我想知道为什么会发生这种情况,更重要的是,如果有一个解决方案或绕过这个问题。(注:-我只

我已经编写了一个用于数据扩充和仅保存图像的代码。尚未创建任何模型。我计划先创建增强图像,然后再训练我的模型。问题是并不是所有的图像都被用于增强和保存。 我有275张图像,范围为50张,这意味着总共创建了13750张图像,但是我从增强中只得到了7500张图像。我试着调试,发现在读取图像和增强图像时没有问题,而是在增强图像。Follow方法不保存图像。当
save_format
参数选择为jpeg时,情况会变得更糟。我想知道为什么会发生这种情况,更重要的是,如果有一个解决方案或绕过这个问题。(注:-我只是一个初学者在这个领域)


有两个问题导致了这个问题。首先是使用来自目录的flow_,其次我不知道为什么,但以jpeg格式保存图像解决了这个问题。我猜代码背后的保存机制对png格式不起作用,原因不明。虽然应该指出,它解决了问题相当大,但不是所有的方式。也就是说,如果我想从datagenerator生成15000个图像,它现在会生成13500个图像。如果图像以png格式保存,此图像计数将减少到7-8k图像。

出现此问题的原因有两个。首先是使用来自目录的flow_,其次我不知道为什么,但以jpeg格式保存图像解决了这个问题。我猜代码背后的保存机制对png格式不起作用,原因不明。虽然应该指出,它解决了问题相当大,但不是所有的方式。也就是说,如果我想从datagenerator生成15000个图像,它现在会生成13500个图像。如果图像以png格式保存,此图像计数将减少到7-8k图像。

我想您想使用目录中的
flow\u,否?顺便说一句,您不需要保存增强。您应该直接在
model.fit\u生成器(datagen.flow\u from\u directory(…),…)
上使用flow\u from\u directory技术仍然显示出相同的问题,实际上它生成的图像更少。另外,我知道我们可以在运行时使用增强功能,但我希望先分别使用图像。我已经解决了这个问题。您使用来自目录的flow_是正确的。非常感谢!我该如何结束这个问题?我想你应该使用
flow\u from\u directory
,否?顺便说一句,您不需要保存增强。您应该直接在
model.fit\u生成器(datagen.flow\u from\u directory(…),…)
上使用flow\u from\u directory技术仍然显示出相同的问题,实际上它生成的图像更少。另外,我知道我们可以在运行时使用增强功能,但我希望先分别使用图像。我已经解决了这个问题。您使用来自目录的flow_是正确的。非常感谢!我如何结束这个问题??
import cv2
import glob
import keras
import numpy as np
import matplotlib.pyplot as plt
from keras.preprocessing.image import ImageDataGenerator


types=('*.png','*.jpg','*.jpeg','*.jfif','*.bmp')
path2="C:\\Users\\Cato\\Desktop\\BE project\\Augmented data\\hugging"
#path2="C:\\Users\\Cato\\Desktop\\output"
datagen=ImageDataGenerator(rotation_range=40,width_shift_range=0.27,height_shift_range=0.27,zoom_range=[0.9,1.5],brightness_range=[0.3,1.0],horizontal_flip=True,vertical_flip=False)
i=0;
for files in types:
    path1="C:\\Users\\Cato\\Desktop\\BE project\\Augmented data\\grayscale\\hugging\\"+str(files)
    #path1="C:\\Users\\Cato\\Desktop\\input\\"+str(files)
    i=i+1;
    for file in glob.glob(path1):
        i=i+1;
        image = np.expand_dims(cv2.imread(file), 0)
        datagen.fit(image)
        for x,val in zip(datagen.flow(image,save_to_dir=path2),range(50)):
            pass


print("Augmentation completed")