通过爬图产生批量错误图片(损坏图片),用以下代码进行过滤删除。
from PIL import Image
import cv2
import os
'''------------ start 检测图像文件是否损坏 ---------------- '''
def is_valid_image(path):
try:
bValid=True
fileobj=open(path,'rb') #以二进制打开文件
buf=fileobj.read()
if not buf.startswith(b'\xff\xd8'): # 是否以\xff\xd8开头 表示JPEG(jpg)
bValid=False
else:
try:
Image.open(fileobj).verify()
except Exception as e:
bValid=False
except Exception as e:
return False
return bValid
''' ----- 这里写一个调用函数:调用is_valid_image -----------'''
def is_call_valid(path):
# 遍历图像夹下所有图像 root:根目录 dirs:根目录下所有目录ÿ