cvs.imwrite не сохраняет фотографии, возвращает false

У меня есть следующий код, который должен

  • просмотреть все файлы
  • Соберите все фотографии, которые принадлежат папкам «0» или «1».
  • Немного преобразить фото
  • Поместите их в новые папки --- все "0-фотографии" помещаются в уникальную папку. То же самое для 1

Вот

import cv2
import os
import random as rnd

outdir0='cancerdata\\0'
outdir1='cancerdata\\1'
readdir='sample'
j=0;
for dirs in os.listdir(readdir):
    dpath=os.path.join(readdir,dirs)
    for subdir in os.listdir(dpath): 
        fpath=os.path.join(dpath,subdir)
        for file in os.listdir(fpath):

            rfile=os.path.join(fpath,file)
            image=cv2.imread(rfile,0)
            size=rnd.randint(50,100)
            img=cv2.resize(image,(size,size),interpolation=cv2.INTER_AREA)
            print(img)
            if subdir == '0':
                wfile=os.path.join(outdir0,file)
                cv2.imwrite(os.path.join(outdir0,file),img)
            elif subdir == '1':
                wfile=os.path.join(outdir1,file)
                cv2.imwrite(os.path.join(outdir1,file),img)

Ошибку НЕ выдает, но почему-то не сохраняет ни один из файлов. Всякий раз, когда я пытаюсь сохранить одно изображение через

 cv2.imwrite(r'sample\cancerdata\1\8865_idx5_x2101_y851_class1.png',img)

Все, что я получаю, ЛОЖЬ.


person I.J. Abdul Hakeem    schedule 23.04.2018    source источник


Ответы (3)


Использование обратной косой черты (\) в строках Python может привести к неожиданностям. В приведенном выше коде обратная косая черта создает символ с восьмеричным значением, которое недопустимо в имени файла в Windows. См. https://docs.python.org/3/reference/lexical_analysis.html#literals для получения подробной информации.

Среда выполнения Python прекрасно работает с косой чертой (/) в Windows. Используйте те.

person Dave W. Smith    schedule 24.04.2018

Папки, в которые вы сохраняете, вероятно, не существуют.

Убедитесь, что эти папки существуют:

cancerdata\0
cancerdata\1
sample\cancerdata\1
person Andriy Makukha    schedule 24.04.2018

сначала установите каталог, в котором вы хотите хранить изображения, в качестве текущего рабочего каталога. Затем просто передайте имя изображения, и ваше изображение будет сохранено.

person Ravi srivastava    schedule 25.07.2019