我正在尝试将图像分割成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')