我发现 Qt 和 OpenCV 4.0.0 不兼容,因为前者是 32 位的,而后者是 64 位的。(构建 64 位 Qt 对我来说非常令人费解)所以,我决定使用 IPC 来实现我的应用程序。但是,我没有使用它的经验,只是理论上知道它。
这就是我想要实现的:有两个过程。第一个从网络摄像头读取帧(它与 Qt 结合),以 cv::Mat 的形式将其发送到第二个。第二个进行地标检测,在 Mat 中画一个圆圈并将其重新发送给第一个。
我很好奇的是第二个进程如何知道帧(Mat)已经发送。如果我像下面这样实现它,它似乎效率很低。
while(nothing in shared memory);
do_something()
第二个进程应该在没有要处理的帧(Mat)时休眠,并在有帧(Mat)时被第一个进程唤醒。我怎样才能实现这样的事情?