我目前正在做一个 python 项目。这是关于图像检测的。我必须处理与多处理同时运行的进程。第一个函数与图像采集卡通信并进行一些图像处理。第二个功能与执行实际图像检测的神经网络通信。第二个函数需要在第一个函数中抓取的图像进行检测。然后第二个函数应该提供结果,第一个函数使用这些结果在视频流(检测到的对象所在的位置)上绘制矩形。
代码看起来像这样:
import multiprocessing
import cv2
import json
def fun1():
while True:
# Shows video-stream, does image editing, grabs frames
# and stores them in an external folder
# Accesses the result for drawing rectangles from the
# .json file
def fun2():
while True:
# Uses frames from the external folder
# does image-detection, saves result to .json file
if __name__ == "__main__":
s = Process(target=fun1)
r = Process(target=fun2)
s.start()
r.start()
s.join()
r.join()
如您所见,两个进程都在无限循环中运行。至于现在,我将 fun1 中创建的图像保存在一个文件夹中,fun2 可以访问它们。fun2 神经网络的结果保存在 .json 文件中,fun1 可以在其中访问它们。
结果和图像都会在每次迭代中发生变化。我想知道,是否有办法将当前图像直接发送到 fun2 并将结果从 fun2 发送到 fun1 而无需使用外部 .json 文件。有没有直接沟通的方法?
我希望我可以理解地解释我的问题。
谢谢你的协助!