2013-07-19 6 views
2

Qt에서 라벨로 비디오를 재생 중입니다. 나는 같은 CVC를 사용하고있다. 동영상이 재생되고 있지만 너무 빠릅니다. 재생 속도를 낮추려면 어떻게해야합니까? setCaptureProperty를 사용하여 시도했지만 작동하지 않습니다.OpenCV를 사용하는 Qt에서 비디오가 너무 빠름

CvCapture *capture; 
IplImge *frame; 
cv::Mat source_image; 
cv::Mat dest_image; 
QTimer *imageTimer; 

버튼을 클릭 슬롯 :

HeaderFile 선언은 다음과 같이 내 코드는

void MainWindow::onButtonClick() 
{ 
    capture = cvCaptureFromFile("/mp.mp4"); 
    while(capture 
    { 
    frame = cvQueryFrame((capture); 
    source_image = frame; 
    cv::resize(source_image,source_image,cv::Size(420,180),0,0); 
    cv::cvtColor(source_image,source_image,CV_BGR2RGB); 
    QImage qimg = QImage((const unsigned char*)source_image.data,source_image.cols,source_imge.rows,QImage::Format_RGB888); 
    label->setPixmap(QPixmap::fromImage(qimg)); 
    label->resize(label->pixmap()->size()); 
    } 
} 

누군가가 이것에 안내하시기 바랍니다 ... 감사합니다 :)

+0

사용 cvWaitKey'(100). 100ms 지연이 추가됩니다. – William

+0

시도해보십시오 ... 작동하지 않습니다 ... 나는 while 루프를 썼습니다 ... – Sid411

답변

1

난에 Qtimer를 사용 다음과 같이 while 루프가 아닌이 방법을 사용합니다.

void on_button_click() 
{ 
    cap.open(0); 
    timer->start(50); 
} 
void readframe() 
{ 
    //display image in label 
    cap>>frame; 
    Mat2QImage(); // convert mat to QImage; 
    ... 
    //setpixmap(); 
    ... 
} 
각 프레임 ';

메인 창에서

connet(timer,timeout(),this,readframe()); 
관련 문제