gpt4 book ai didi

c - C中图像接收和处理的并行操作

转载 作者:行者123 更新时间:2023-11-30 14:25:22 25 4
gpt4 key购买 nike

我正在 UBUNTU 平台上工作,在该平台上,我从两个不同的相机(基于事件的捕获)接收图像(通过 UDP )并处理图像(3D 重建)。我想以这样的方式执行此操作:在图像接收操作正在进行时,图像处理操作应该并行启动。我知道我可以使用两个 posix 线程来执行这两个并行操作。但我很困惑如何同步这两个线程,以便 process()线程应该在 receive() 接收到至少一对图像后立即启动线。如果我做process()线程等待 mutex条件(将由receive()线程每次接收一对图像时设置),接收将比处理快得多,并且receive()process() 处理单个图像对时,线程可能会多次设置条件。线。实现此操作的更好方法是什么?

最佳答案

将要处理的图像(或指向每个图像的指针,或有关信息的结构,无论您的机制是什么)放在接收线程中的线程安全队列上。使用semaphorepthread_cond在将项目放入队列后向处理线程发出信号。

处理线程应该阻塞,直到收到 cond 信号,并且仅当队列为空时才阻塞。当该线程被解除阻塞时,它应该从队列中弹出图像并开始其工作。当处理完成后,它应该(在循环的顶部)决定是否阻止或处理另一个图像。如果队列为空,则会阻塞。如果队列不为空,它将弹出图像并对其进行处理。

关于c - C中图像接收和处理的并行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com