https://blog.csdn.net/weixin_43826242/article/details/90325955
https://blog.csdn.net/weixin_43826242/article/details/90325955
原因:
(也可能是没加入mask的原因)
解决关键:验证数据集中的照片格式是否正确
出错的原因:
数据集中所有的照片虽然都是.jpg格式的,但是有的照片没有进行转码,只是更改了后缀,因此在模型加载的时候才会报错。
错误的原因正是因为后缀名和图片的实际格式不符,才会导致imread读入为空
可以使用PIL工具将所有的jpg图片转换成为jpg图片,从而避免这样的麻烦。
# 将所有的图片转换成为jpg格式(防止因为图片格式造成的cv2.imread()异常)
# 将所有的图片转换成为jpg格式(防止因为图片格式造成的cv2.imread()异常)
import PIL.Image as Image
import os
# 'DUT-OMRON', 'DUTS-TE', 'ECSSD', 'HKU-IS', 'PASCALS', 'SOD', 'THUR15K'
DataSet = ['HKU-IS', 'PASCALS', 'SOD', 'THUR15K']
for id, dataset in enumerate(DataSet):
Path1 = '/home/nk/zjc/PycharmProjects/nk_GCPANet/data/'
Path2 = dataset + '/Imgs/'
filelist = os.listdir(Path1 + Path2)
print(id, '=>', Path1 + Path2)
filelist = sorted(filelist)
for file in filelist:
img = Image.open(Path1 + Path2 + file).convert('RGB')
# print(img)
img.save(Path1 + Path2 + file)
print('=>', Path1 + Path2 + file)
print('Done!')
# 将所有的图片转换成为jpg格式(防止因为图片格式造成的cv2.imread()异常)
import PIL.Image as Image
import os
Path = './SOD/'
def start(Path):
filelist = os.listdir(Path + 'JPEGImages/')
for file in filelist:
img = Image.open(Path + 'JPEGImages/' + file).convert('RGB')
# print(img)
img.save(Path + file)
print('Done!')