为什么?有些数据用cv2.imread()读取的是None
收藏
如我最后的测试集,240张图片,但是有2张读取是None,最后的提交只有238个数据
0
收藏
请登录后评论
是因为有些图片异常,或者不规范,你换其他方法读取试试
已经解决了,用Image谢谢哈
# 23.5.9 数据文件清洗。在transform时发现一些cv2.readim()错误的文件,导致训练挂死,需要转换清洗
import os
import cv2
from PIL import Image
# 执行一遍再次执行,可以发现已经没有cv2.imread为空的文件了,清洗完成
directory = "/home/aistudio/work"
for subdir in ["cat_12_predict", "cat_12_train"]:
subdir_path = os.path.join(directory, subdir)
for filename in os.listdir(subdir_path):
filepath = os.path.join(subdir_path, filename)
# 23.5.9 遇到可能的cv2.imread问题的图像文件,先进行转换,避免transform的时候出错
if cv2.imread(filepath) is None:
print(filepath)
img = Image.open(filepath).convert('RGB')
# 23.5.9 先完全遍历并变换格式,让cv2可以识别
img.save(filepath)
print('finish saving')