Применение параллельного преобразования к списку изображений

#python #python-multiprocessing

#python #python -многопроцессорная обработка

Вопрос:

Я пытаюсь применить одно и то же преобразование (HOGs / размытие) к каждому изображению в списке параллельно. Изображения представляют собой numpy ndarrays, импортированные с помощью cv2.imread и сохраненные в виде списка.

В настоящее время, когда я передаю список изображений в свою функцию, кажется, что передается одна запись в массиве, то есть один пиксель в изображении, а не целое изображение. Можете ли вы посоветовать, как передать весь массив / изображение каждому работнику в пуле?

Спасибо!

 # imports
from functools import partial
from skimage.feature import hog
from multiprocessing import Pool

def findhog(image):
    return hog(image, visualise=True)[1] # hog returns two things, only return the visualisation

with Pool(processes=4) as pool:
    hogs = pool.map(findhog, listofimages)

 

Комментарии:

1. То, что вы опубликовали, выглядит правильно. Вы проверили listofimages , это то, что вы ожидали?

2. Я также использовал partial(), но не включил это, потому что думал, что это правильно. Оказывается, в этом и заключалась проблема…