我正在寫一個代碼,使用QTimer觸發opencv videoCapture調用來讀取視頻幀。我通常會閱讀大量的視頻,所以想知道是否有其他方法可以加速這一過程。qtimer和opencv運行緩慢
這裏我的代碼的快照使用QTimer:
timer = new QTimer();
timer->setTimerType(Qt::PreciseTimer);
connect(timer, SIGNAL(timeout()), this, SLOT(read_shape_params()));
//in a loop stop timer and setup the next video stream then start
void next(){
timer->stop();
stream = new video_stream_reader();
stream->setColorGray(grayImage);
stream->set_begin_end(begin_at,end_at);
stream->open(video_base_path+video_path);
timer->start(0);
}
void shape_param_finder::read_shape_params(){
Mat frame;
frame = stream->read_frame();
}
Mat video_stream_reader::read_frame(){
Mat frame;
bool bSuccess = capture->read(frame);
return frame;
}
我真的不明白你想達到什麼目的,計時器運行速度是否太慢? – GPPK
是的,確切地說。 QTimer很慢 –
這可能是因爲你正在創建一個新的計時器對象。只需在循環前創建一個 – GPPK