Opencv 3.2 читает файлы mpeg слишком медленно

Я изучаю книгу «Изучение OpenCV 3» и тестирую видео-пример 2.3. Я мог бы отредактировать, скомпилировать и запустить его, но проблема в том, что он немедленно закрылся.

// DisplayPicture.cpp : Defines the entry point for the console application.
//

//#include "opencv2/opencv.hpp" // Include file for every supported OpenCV function#include "opencv2\imgproc\imgproc.hpp"#include "opencv2\highgui\highgui.hpp"#include <opencv2/videoio.hpp>

#include <stdio.h>
#include <string.h>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
namedWindow("video3", WINDOW_AUTOSIZE);
VideoCapture cap;
cap.open( string(argv[1]));
int tell = 0;
Mat frame;
for (;;) {
cap >> frame;
//waitKey(30);
if (frame.empty())
{
break;
//end of film
}
imshow("video3", frame);
}
return 0;
}

Я обнаружил, что мой компьютер обрабатывал данные слишком быстро. Он не мог прочитать следующий кадр достаточно быстро. if (frame.empty()) стало реальностью, программа достигла break Заявление так и закончилось.

Добавляя waitkey 30 миллисекунд перед просмотром рамки изображения, видео программа работает очень хорошо. По крайней мере, я могу посмотреть видео. Поскольку этот пример взят из Библии, он должен работать, но не с моим компьютером.

Я бегу MSI GT72 2PE компьютер с NVIDIA GTX880M. Не уверен, что это имеет значение.

Я предполагаю, что добавление waitKey(30) не подходит, поэтому я ищу предложения относительно того, что можно сделать по-другому.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]