Параллельная обработка разбиения и объединения изображений с использованием Python - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь разделить изображение на 4, а затем обработать его, а затем соединить их параллельно (я смог сделать это последовательно).

Я использую библиотеку Image_slicer для функций срезов и соединений. Кроме того, пытаясь параллельно работать с этими фрагментами фрагментов, во время которых создаются и запускаются 4 процесса. Обработанная плитка заменяется на исходные нарезанные дорожки. Но когда я пытаюсь присоединиться к ним, это не работает, потому что вся обработка выполняется во внешней функции, и их локальные параметры больше не сохраняют их. Есть ли способ, которым я мог бы сделать это?

Пожалуйста, найдите мой код ниже:

from image_slicer import slice,join
from multiprocessing import Process
import cv2

tiles=slice('test.jpeg',4)

def getting_image(image_path): 
    img_todraw_defects = cv2.imread(image_path)
    blur= cv2.pyrMeanShiftFiltering(img_todraw_defects,21,49)
    gray_image= cv2.cvtColor(blur, cv2.COLOR_BGR2GRAY)

    cv2.imwrite(image_path,gray_image)

if __name__ == '__main__':
    processes = []

    for i in tiles:
        p = Process(target=getting_image, args=(i.filename,))
        processes.append(p)
        p.start()

    for process in processes:
        process.join()

Final=join(tiles)
Final.save('final.png')

1 Ответ

0 голосов
/ 04 января 2019

Вы можете попытаться использовать Shared Memory или класс Manager из пакета multiprocessing для обмена данными между процессами. Документация здесь .

...