#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(), но не включил это, потому что думал, что это правильно. Оказывается, в этом и заключалась проблема…