如果从第一个算法返回,则运行第二个算法,而第一个算法始终保持运行.Python



问题描述:第一种算法从相机捕获流视频,有时从中输出一帧。输出之间的时间不同且不可预测。输出应该传递给第二个算法,该算法处理图像并保存结果。而第一个算法保持捕获流视频并在条件允许的情况下输出帧。

如何解决这个问题?

我可以通过CCD_ 1保持第一个算法的运行;暂停";当输出和第二算法开始时。

您可以使用多处理模块,然后使用队列在不同进程之间移动帧。

创建一个队列q。使用输入参数q创建进程p。在主进程中读取帧并附加到q。在p中,经常检查q,只要不是空的,就从中读取并运行算法。类似于下面的代码,但根据您的用例进行编辑。

from multiprocessing import Process, Queue
def do_your_thing(myQ):
while True:
data = myQ.get()
if data is not None:
# your algorithm runs here
q = Queue()
p = Process(target=do_your_thing, args=(q,))
p.start()
# your stream reading code 
while True:
frame = camera.read()
q.put(frame)

最新更新