我正在使用Qt編寫一個GUI程序,並使用OpenCV進行一些視頻處理。我在主GUI線程中的標籤中顯示OpenCV進程(它位於單獨的線程中)的結果。使用cv :: waitKey而不必先調用cv :: namedWindow或cv :: imshow
我遇到的問題是cv :: waitKey不起作用,除非我打開使用cv :: namedWindow或cv :: imshow打開的本機OpenCV窗口。有人知道如何解決這個問題嗎?
短例如:
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");
即評論的,該程序與訪問衝突錯誤崩潰。
與cv::namedWindow("test");
即未註釋,程序顯示完美,但有一個窗口(命名測試),我不想或不需要。任何人?
重新讀你的問題,它沒有任何意義,**與** namedWindow()你有一個行爲,然後**與** namedWindow()你有另一個。 – karlphillip
其中一個被評論,另一個不是 – Dyps
@karlphillip我編輯過使它更清晰。 – Dyps