python批量数据集扩充

不报错,不生成 数据集扩充
一通道L图像 python
batch灰色有影响么 哪错了呢 怎么改呢

#数据扩充
# 载入包
import pandas
from keras.preprocessing.image import ImageDataGenerator
import os
import time
from keras.utils import load_img

# 定义扩充图片函数
def image_expansion(filepath,savefilepath,multiples=20):
    """
    :param filepath: 图片路径
    :param savefilepath: 扩充保存图片路径
    :param multiples: 扩充倍数,默认扩充20倍
    :return: 返回扩充后数据集
    """
    # keras中可以通过keras.preprocessing.image.ImageDataGenerator类来实现
    datagen = ImageDataGenerator(
            rotation_range=40,    #随即旋转角度数范围
            width_shift_range=0.2,    #随即宽度偏移量,图像在水平或垂直方向上平移的范围(相对于总宽度或总高度的比例)
            height_shift_range=0.2,    #随即高度偏移量
            shear_range=0.2,        #随机错切变换角度
            zoom_range=0.2,         #=随机缩放的范围
            horizontal_flip=True,      #是否随机水平翻转
            fill_mode='nearest')       #填充新创建像素方法
    for parent, dirnames, filenames in os.walk(filepath):
        for filename in filenames:
            image_path = filepath+filename
            print(image_path)
            img = load_img(image_path)
            x = pandas.array(img)
            x = x.reshape((1,) + x.shape)
            i = 1
            for batch in datagen.flow(x, batch_size=32,
                                      save_to_dir=savefilepath,
                                      save_prefix='r',
                                      save_format='jpg'):
                print('正在扩充图片数据集第'+str(i)+'张')
                i += 1
                if i >multiples:
                    break

if __name__ == '__main__':

    # 设置图片路径
    filepath = 'C:/Users/ASUS/Dektop/R/benign/'

    # 设置扩充保存图片路径
    savefilepath = 'C:/Users/ASUS/Desktop/R/r-benign/'

    time1 = time.time()
    image_expansion(filepath,savefilepath,multiples=20)
    time2=time.time()
    print('总共耗时:' + str(time2 - time1) + 's')

参考GPT和自己的思路:

根据代码和问题描述,可能出现问题的地方是图片路径设置和扩充保存路径设置,需要检查一下是否设置正确。另外,关于一通道L图像和batch灰色的影响问题,需要具体情况具体分析,可能需要查看数据集和模型的具体特征。如果需要改进代码,可以尝试设置更全面的数据扩充参数,提高数据的多样性。

参考GPT和自己的思路:

根据你提供的代码,我看不到具体的问题描述。但从代码的逻辑分析,数据扩充的函数实现应该是没有问题的,可以扩充图片数据集。如果你的代码没有报错,但是并没有生成数据集,那么可能是一些路径、格式、权限等问题导致的。你可以检查以下几点:

  1. 检查filepathsavefilepath变量是否正确设置到了图片所在目录和保存路径。
  2. 检查图片的格式是否正确,例如是否都是jpeg格式,因为函数中保存图片格式为jpg
  3. 检查是否有足够的空间保存所有扩充后的图片。
  4. 检查程序是否有写入保存路径的权限。

至于第二个问题,即一通道L图像batch灰色有影响,我需要更多细节才能回答你的问题。你可以提供更具体的描述,例如何为“一通道L图像”以及“影响”指的是哪个方面。这样我才能给你一个更准确的回答。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据代码描述的情况,生成数据集扩充的过程中没有出现错误,也没有生成任何数据集,这可能是因为填充方法的设置导致的。在您的代码中,fill_mode设置为'nearest',这意味着在填充新像素时将使用原始像素值最近的像素,这可能会导致生成的图像中存在许多重复像素,从而使扩充后的数据集的多样性不足。建议您将fill_mode设置为'constant'或'reflect'。同时,为了更好的诊断问题,可以添加更多的打印语句,以确定程序是否执行到期望的位置。

由于代码中使用了Python的os.walk()函数来遍历目录,需要保证读取目录的权限。

scipy库出现问题,卸载重装,清华镜像源pip install 要安装的包 -i https://pypi.tuna.tsinghua.edu.cn/simple