Как читать и сохранять большой набор данных изображений с помощью многопроцессорной обработки и OpenCV - PullRequest
0 голосов
/ 30 марта 2020

Я работаю с большим набором данных изображений, и я загрузил все на свой диск, чтобы я мог легко получить к нему доступ с помощью Google Colab. Если я пытаюсь использовать простой цикл for с opencv для чтения и сохранения всех изображений в списке, это заняло более 2 часов, поэтому я решил попробовать использовать многопроцессорность. Я пытался таким образом, но в конце у меня ничего нет в моем списке. Может кто-нибудь попытаться заставить меня понять, что я делаю не так? Я действительно ценю каждую помощь. Большое спасибо всем.

t1 = time.perf_counter()

def load_and_resize(image_list,output_list):
  for file in image_list:
    img = cv2.imread(file,0)
    img = cv2.resize(img, (48, 48))
    output_list.append(img)
  output_list = np.asarray(output_list)
  return output_list


with concurrent.futures.ProcessPoolExecutor(max_workers=3) as executor:
    top_images = []
    image_files = []
    image_files += glob.glob(top_path+"/*"+".png")
    print("Processed " + str(len(image_files)) + " images")
    executor.map(load_and_resize, image_files,top_images)

t2 = time.perf_counter()
print(f'Finished in {t2-t1} seconds')```

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