【问题标题】:Undersampling with image data in python在python中对图像数据进行欠采样
【发布时间】:2020-04-28 16:53:22
【问题描述】:

欠采样的主要思想是随机删除具有足够观察值的类,以便两个类的比较比率在我们的数据中显着。 那么,如何在 python 中对图像数据进行欠采样呢?请帮帮我:(

我从 Kaggle 获取眼底图像数据。有 5 个类别的 35127 张图像。 0类:25810个数据, 第 1 类:2443 个数据, 第 2 类:5292 个数据, 第 3 类:873 个数据, 第 4 类:708 个数据,

我希望每个班级在第 4 节课之后有多达 708 张图片。如何在 Python 中删除其余的图像?

【问题讨论】:

  • 请提供更多信息,一些示例代码或示例。
  • 我从 Kaggle 获取了眼底图像数据。有 5 个类别的 35127 张图像。 0类:25810数据,1类:2443数据,2类:5292数据,3类:873数据,4类:708数据,我希望每个类在第4类之后有多达708张图像。如何在 Python 中删除其余图像?
  • 这太宽泛/模糊,而且可能离题 IMO。

标签: python image-processing oversampling imagedata


【解决方案1】:

我知道这是一个老问题,但为了人们寻找答案,这段代码完美运行:

    path = r'C:/The_Path'# You can provide the path here
    n = 2500 # Number of random images to be removed
    img_names = os.listdir(path)  # Get image names in folder
    img_names = random.sample(img_names, n)  # Pick 2500 random images
    for image in img_names:  # Go over each image name to be deleted
        f = os.path.join(path, image)  # Create valid path to image
        os.remove(f)  # Remove the image

正如您的问题所述,您希望所有类都等于 4 类,即 708 张图像。只需找出差值并替换n,例如第3类图像和708个图像之间的差值为165个图像,因此n = 165。此外,您可以将其制成一个函数来对其进行更多的泛化。

代码取自,但已编辑:

How can i delete multiple images from multiple folders using python

https://stackoverflow.com/users/10512332/vikrant-sharma 回答了这个问题。

谢谢!

【讨论】:

    猜你喜欢
    • 2020-09-06
    • 2020-09-19
    • 2015-05-26
    • 2017-06-08
    • 2018-07-09
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    相关资源
    最近更新 更多