Я пытаюсь запустить скрипт python для каждого png
файла в папке. run.py
принимает png-файл по --path_to_load
arg и возвращает обработанный png-файл в path_to_save
arg. Мне удалось получить файлы png в список pngfiles
и настроить для l oop, как показано ниже:
import glob
import os
import cv2
pngfiles = []
for pngfile in glob.glob('selected_faces/**/*.png', recursive=True):
pngfiles.append(pngfile) #returns 'selected_faces\pngfilename.ext' to a list
print (pngfiles[:2])
#['selected_faces\\S005_001_00000001.png',
#'selected_faces\\S005_001_00000011.png']
for file in pngfiles:
filename = file.split('\\')[1]
print(filename)
#S005_001_00000001.png
#returns correct first file name
save_path = os.path.join('aligned_faces',filename) #returns save path
print(save_path)
#aligned_faces\S005_001_00000001.png
#returns correct save path
print(file)
#selected_faces\S005_001_00000001.png
#returns correct load path
%run run.py --mode 1 --path_to_load=file --path_to_save=save_path
Запуск кода возвращает ошибку подтверждения OpenCV! _Src_empty (), вероятно, из-за того, что входной файл не может ' быть прочитанным.
error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
Но выполнение кода из l oop позволяет говорит, что только для одного файла, это работает как задумано:
%run run.py --mode 1 --path_to_load="selected_faces\image1.png" --path_to_save="aligned_faces\image1.png"
Я проверил, что оба file
и save_path
являются строками и, похоже, с этим проблем нет. Или, может быть, я что-то упускаю, очевидно.
Спасибо.