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
Хотел узнать, что я делаю что-то не так... или если есть какой-то лучший способ сделать то же самое