Qt を使用して GUI プログラムを作成し、OpenCV でビデオ処理を行っています。メイン GUI スレッドのラベルに (別のスレッドにある) OpenCV プロセスの結果を表示しています。
私が抱えている問題は、cv::namedWindow または cv::imshow を使用して開いたネイティブ OpenCV ウィンドウを開かない限り、cv::waitKey が機能しないことです。これを解決する方法を知っている人はいますか?
短い例:
void Thread::run()
{
//needed variables
cv::VideoCapture capture(0);
cv::Mat image;
//main loop
//cv::namedWindow("test");
forever
{
capture>> image;
if(!image.data)
break;
emit paintToDisplay(convertToQImage(image));
cv::waitKey(40);
}
}
//cv::namedWindow("test");
ie をコメントすると、アクセス違反エラーでプログラムがクラッシュします。
つまり、コメントをcv::namedWindow("test");
外すと、プログラムは完璧に表示されますが、不要または必要のないウィンドウ (test という名前) があります。誰か?