我在实现以下场景时遇到问题。我的问题陈述是这样的:
- 我有 3 个线程。ThreadCamera 用于从相机中抓取帧。ThreadProcess 用于处理(使用 OpenCV 在图像/帧抓取的图像上进行一些图像处理)帧和用于显示图像的主 GUI 线程。
- 我不知道 ThreadProcess 处理图像需要多少时间。所以我想将图像从 ThreadCamera 传递给 ThreadProcess ,对图像进行一些图像处理并将其传递给主 GUI 线程进行显示。
- 当 ThreadProcess 处理图像时,ThreadCamera 应该休眠。即它不应该从相机中抓取更多帧。当 ThreadProcess 完成图像处理任务时,它应该将图像和一些信息传递给主 GUI 线程。在此之后,只有 ThreadCamera 应该唤醒并从该(ThreadCamera)线程中运行的相机中获取下一帧/图像。
Thanx Guys...在将相机和图像处理工作放在一个线程中的一些评论之后,我想知道另一点..这是..
- 如果在处理过程中不想让相机休眠怎么办?如果我松开 CameraThread 抓取的一些帧对我来说并不重要(无论如何,如果我睡觉或不让相机睡觉,我都会丢失)
我为每个进程(相机进程和图像处理作业)使用 QObject,并使用 movetoThread 命令使其在特定线程中运行。
有关实现和信号/插槽设计的任何见解都会有所帮助。