OpenCV:如何使用cvWaitKey()形成一个不同于创建窗口的线程?

时间:2010-09-27 10:07:59

标签: c opencv

我在这里遇到问题,需要你的帮助。我一直在尝试使用cvWaitKey()函数从创建的窗口捕获键盘笔划。如果我从创建窗口的同一个线程调用cvWaitKey,该函数工作正常,但是当我从一个线程创建窗口并从另一个线程调用cvWaitKey()时它没有返回正确的键,它阻塞cvWaitKey(0)对于任何超过零的超时,返回-1。

2 个答案:

答案 0 :(得分:1)

是的,这不行。 cvWaitKey()是通过调用PeekMessage()API函数实现的。这只能看到与线程关联的消息队列中的消息。您创建的主题没有任何窗口。

没有明显的解决方法,你必须在创建窗口的线程上调用它。调用GetAsyncKeyState()可以工作,但这是一种非常不同的方法。

答案 1 :(得分:0)

在“其他”线程中,您可以将某些共享变量设置为true或false(或某个值),并使“窗口线程”在决定是否在其本地范围内调用cvWaitKey()之前对其进行检查。