我目前正在研究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()
如您所见,两个进程都在无限while循环中运行。到目前为止,我将在fun1中创建的图像保存在一个文件夹中,fun2可以在其中访问它们。 fun2神经网络的结果保存在一个.json文件中,fun1可以在其中访问它们。
结果和图像都会更改每次迭代。我想知道是否有一种方法可以直接将当前图像发送到fun2并将结果从fun2发送到fun1而不使用extern .json文件。有没有直接沟通的方法?
我希望我可以理解我的问题。
感谢您的帮助!