python - 在python中对图像数据进行欠采样
问题描述
欠采样的主要思想是随机删除具有足够观察值的类,以便两个类的比较比率在我们的数据中是显着的。那么,如何在 python 中对图像数据进行欠采样呢?请帮我:(
我从 Kaggle 获取眼底图像数据。有 5 个类别的 35127 张图像。0类:25810数据,1类:2443数据,2类:5292数据,3类:873数据,4类:708数据,
我希望每个班级在第 4 节课之后有多达 708 张图像。如何删除 Python 中的其余图像?
解决方案
我知道这是一个老问题,但为了人们寻找答案,这段代码完美运行:
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。此外,您可以将其制成一个函数以对其进行更多概括。
代码取自,但经过编辑:
https://stackoverflow.com/users/10512332/vikrant-sharma回答了这个问题。
谢谢!
推荐阅读
- .net - 对 Windows AD 用户使用匿名身份验证
- vue.js - 是否可以对 HTML 代码进行声明式呈现?
- tensorflow - 我的自定义损失函数中没有为任何变量提供梯度
- java - System.out.println 如何在线程级别工作?
- javascript - 动态图章 - acrobat pdf
- node.js - fastify-jwt 使用用户 ID 有效负载签名令牌
- java-8 - java.lang.OutOfMemoryError:在 hybris 中放置订单时出现 Java 堆空间错误
- python - 存储数据并在 Python 中重新访问数据的最佳方式
- python-3.x - Dita_scans 的乐趣:NameError: name 'outputclass' is not defined
- javascript - 如何在 JavaScript 中更改数组内的嵌套对象值?