当YOLO训练时,碰见有点图片格式已经损坏,利用代码遍历文件夹,将有错误的图片删除。
注意:此处只删除图片,不删除图片对应的标签文件,如果想想删除标签文件请看下一篇文章 YOLO根据已有的图片删除多余的标签文件
import cv2
import os
def find_and_delete_corrupt_images_yolo_format(folder_path):
corrupt_images = []
for filename in os.listdir(folder_path):
file_path = os.path.join(folder_path, filename)
try:
# 尝试使用YOLO格式的图像读取方式
image = cv2.imread(file_path)
if image is None:
# 图像读取失败,将其视为损坏的文件
corrupt_images.append(filename)
print(f"损坏的图像文件: {filename}")
# 删除损坏的文件
os.remove(file_path)
print(f"已删除损坏的文件: {filename}")
except Exception as e:
# 捕获异常,将其视为损坏的文件
corrupt_images.append(filename)
print(f"损坏的图像文件: {filename}")
# 删除损坏的文件
os.remove(file_path)
print(f"已删除损坏的文件: {filename}")
return corrupt_images
if __name__ == "__main__":
# 请将文件夹路径替换为包含图像文件的文件夹路径
folder_path = os.path.abspath(r"G:\zuizhonggongjian\img")
# 查找并删除损坏的图像
corrupt_images = find_and_delete_corrupt_images_yolo_format(folder_path)
# 打印损坏的图像文件名
print("\n损坏的图像文件名:")
for img_name in corrupt_images:
print(img_name)