Erro causado pelo formato da imagem: Erro de atributo: o objeto 'NoneType' não possui atributo 'astype' Solução

razão:

(Também pode ser o motivo pelo qual a máscara não foi adicionada)

A chave para resolver: verifique se o formato das fotos no conjunto de dados está correto

O motivo do erro:

Embora todas as fotos do conjunto de dados estejam no formato .jpg, algumas fotos não foram transcodificadas, mas o sufixo foi alterado, portanto, um erro será relatado quando o modelo for carregado.

O motivo do erro é que o nome do sufixo não corresponde ao formato real da imagem, o que faz com que imread seja lido vazio

Você pode usar a ferramenta PIL para converter todas as imagens jpg em imagens jpg para evitar tais problemas.

 # 将所有的图片转换成为jpg格式(防止因为图片格式造成的cv2.imread()异常)
import os
from PIL import Image
train_files = os.listdir('datas/bg_images')
for file in train_files:
    img = Image.open(f'datas/bg_images/{
      
      file}')
    format = img.format  # 图像格式
    if format != 'JPEG':
        print(file)
        print(format)
        new_img = img.convert("RGB")
        new_img.save(f'datas/bg_images/{
      
      file}', 'JPEG')

おすすめ

転載: blog.csdn.net/qq236237606/article/details/127783866