Python Мультипроцессинг изображения (массив np) - PullRequest
0 голосов
/ 21 марта 2019
def processImage(image):
    //processTheImage
    return point //returns centroid of closed figure in an image 

У меня есть функция, которая обнаруживает центроид закрытой фигуры на изображении.

Моя цель - разделить изображение на части (скажем, число CORES) и найти центроид каждой части.

Я хотел распараллелить этот процесс, поэтому я пытаюсь использовать многопроцессорность. Бассейн в python

Вот мой подход:

part = int((height)/CORES)
split_image = [image[i*(part):(i+1)*part] for i in range(CORES)]
pool = Pool(processes=CORES)
results = [pool.map(processImage,split_image)]

Я хотел разделить изображениена части, равные количеству CORES, и найдите центр тяжести каждой части.

Когда я запускаю этот код, он дает:

File "TSt.py", line 419, in <module>
points1,points2 = getPoints2(stencil)
File "TSt.py", line 119, in getPoints2
results = [pool.map(processImage,split_image)]
File "/usr/lib/python3.5/multiprocessing/pool.py", line 260, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/usr/lib/python3.5/multiprocessing/pool.py", line 608, in get
raise self._value
IndexError: index 255 is out of bounds for axis 0 with size 117

Хотел узнать, что я делаю что-то не так... или если есть какой-то лучший способ сделать то же самое

...