我想向Qlabel顯示實時相機圖像。當我啓動代碼時,它不會給出任何錯誤,並且我的相機指示燈變成藍色,這意味着工作。但是ui不啓動。在我調試我的代碼後,我發現它在while(true)
中總是循環,但ui->lblProcessedVideo->setPixmap.....
命令不顯示任何UI。如何在QLabel中顯示捕捉圖像
您能用告訴我我的錯誤..
這裏是我的部分代碼:
void MainWindow::getImageFromVideo()
{
CvCapture* capture;
cv::Mat frame;
cv::Mat gray_frame;
capture = cvCaptureFromCAM(0);
if(capture)
{
while(true)
{
frame = cvQueryFrame(capture);
if(!frame.empty())
{
cvtColor(frame, gray_frame, CV_BGR2GRAY);
equalizeHist(gray_frame, gray_frame);
ui->lblProcessedVideo->setPixmap(QPixmap::fromImage(Mat2QImage(frame)));
}
}
}
}
編輯:Mat2QImage()
是轉換墊的QImage
是佈局內的'lblProcessedVideo'標籤嗎?可能標籤大小爲'0'且內容被隱藏。也許你可以將圖像保存在文件中以確保「Mat2QImage」工作正常。 – eferion 2014-09-10 08:50:59
不是最好的建議,但你仍然可以嘗試:在'ui-> lblProcessedVideo-> setPixmap(...'後調用'QCoreApplication :: processEvents()'。' – vahancho 2014-09-10 08:54:30
@eferion yes'lblProcessVideo'正在工作我測試它當我調試代碼時,我發現'Mat2QImage'也是返回值 – goGud 2014-09-10 08:57:14