刚刚跑transformer,修改代码后还总是报错,是因为数据集里面不全是RGB格式的图片,用cv2的函数时没有解决问题,最后直接convert一下,解决了问题。具体的转换代码如下:
import os
from PIL import Image
from tqdm import tqdm
import numpy as np
img_path = '' #填入图片所在文件夹的路径
img_Topath = '' #填入图片转换后的文件夹路径
for item in tqdm(img_path):
arr=item.strip().split('*')
img_name=arr[0]
image_path=os.path.join(img_path,img_name)
img=Image.open(image_path)
if(img.mode!='RGB'):
img = img.convert("RGB")
img=np.array(img)
print(img_name)
print(img.shape)
img.save(img_Topath +'/'+img_name,img)
友友们反应代码跑的过程会报错,可能原因:
1、图片路径设置不正确
2、代码读图片时出错,可以将代码:image_path=os.path.join(img_path,img_name)
修改为:image_path=[os.path.join(img_path,img_name) for img_name in os.listdir(img_path) ]
这样对读入的图片进行约束
其中,tqdm模块是一个进度条配置,首次使用需先安装,
pip install tqdm