python - 使用 Python 并行处理图像的分割和连接
问题描述
我正在尝试将图像拆分为 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')
解决方案
您可以尝试使用包中Shared Memory
的类或Manager
类multiprocessing
在进程之间共享数据。文档在这里。
推荐阅读
- javascript - Vue / Axios:无法使用 coinmarketcap 的密钥获取 API 数据
- javascript - Vue cli 默认使用 webpack 4 而不是 5
- javascript - 如何使用 Amplify Auth Class 添加“记住我”功能?
- javascript - 在 javascript 中访问输入的最佳方式是什么?
- flutter - 如何从蜂巢盒中访问嵌套对象元素?
- php - 无法使用我的 wordpress 表单和 ajax 方法接收邮件
- c# - 错误小数到 Int,简单操作 C# 中的坏回合
- javascript - 切换按钮:使用背景颜色隐藏计数器编号
- arrays - 将空指针转换为整数指针
- python - 我试图通过 python 绘制一些振荡数据不断将其更改为线性线?