机器学习数据集处理:用Python筛除无法读取、边长过小的图片

本文介绍如何使用Python处理机器学习数据集,包括筛选无法读取、边长小于224的图片,并提供了封装好的函数。通过示例展示了代码运行效果,将不合格图片移至trashcan文件夹,便于后期处理。此外,还讨论了如何随机打乱图片顺序以应对数据集分组问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

毕设题目是火焰识别,利用CNN去做,最近一直在网上搜罗常用的数据库,翻了一大堆英文论文,GitHub码云都试过,无奈老是卡在下载速度过慢上。。。。

可做训练不能没有数据集啊!!!

无奈打算从网上爬,无奈乘2自己写的代码老是报错,最后用了大佬的一个代码,原文出处:

https://blog.youkuaiyun.com/qq_40774175/article/details/81273198

大佬就是大佬,代码秒过,但爬下来的数据有一些问题:
(1)总有一些与主题无关的图片混了进来
这都啥玩意???
(2)我们知道2242243的图片是训练常用的一种规格,但文件夹里面的预览很难肉眼发现边长小于224的文件一个一个看又太费劲
这种情况是最难肉眼筛的
(3)有一些图片因为下载出问题读取失败
文件太多的话一个一个弄也太费劲

咋办呢?

对于**(1),只能肉眼去筛,爱莫能助**(谁让我选则自己爬度娘的)
对于**(2)和(3),我决定自己写个程序筛掉不符合要求的图**

废话结束,正文开始,有需要可以直接复制这个程序~~

import tensorflow as tf
import cv2#用里面的imread函数,获取图像大小
import os#用里面的删除、重命名、路径合成函数
import shutil#用里面的移动文件函数
import random

#path='./target'#制定了一个当前文件夹
#trashcan='./trashcan'

'''
输入待筛查文件夹路径,垃圾桶路径,指定的图像边长
函数自动筛除文件夹下不符合要求的图片
'''

def sift_image(path,trashcan,size):
    
    image=tf.gfile.ListDirectory(path)#罗列其下所有文件的名称
        
    total=len(image)#算一下文件里的图像个数
    
    num_size=0#因为尺寸大小被删除的图片数
    num_channel=0#因为通道大小被删除的图片数
    num_read=0#因为无法读入被删除的图片数
    
    for i in range(total):
       
        old_path=os.path.join(path,image
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值