2016-02-07 7 views
1

Я создал проект один раз, и он работал правильно, после переустановки операционной системы я настроил среду и все компоненты, и вдруг я не получаю никакого вывода вообще. Моя программа для тестирования проста:imshow in OpenCv показывает черный экран

#include <cstdio> 
#include "opencv2/opencv.hpp" 
#include <iostream> 
#include <sstream> 

using namespace cv; 
using namespace std; 

int main(int, char**) 
{ 
VideoCapture cap("videofile.avi"); 
if (!cap.isOpened()) // check if we succeeded 
    return -1; 

namedWindow("Frame", 1); 
for (;;) 
{ 
    Mat frame; 
    if (!cap.read(frame)) { 
     cerr << "Unable to read next frame." << endl; 
     cerr << "Exiting..." << endl; 
     exit(EXIT_FAILURE); 
    } 

    imshow("Frame", frame); 
    if (waitKey(30) >= 0) break; 
} 

return 0; 
} 

Я установил все необходимые кодеки и обновил драйверы видеокарты. Все еще получаю тот же черный экран.

Результат выглядит следующим образом: Black screen

EDIT:

Проблема, как представляется, только при воспроизведении видео с .avi AVC кодек

+0

Код выглядит нормально. Попробуйте использовать 'VideoCapture cap (0);', который будет использовать камеру по умолчанию. Если он работает, то у вас есть проблема с кодеком – Miki

+0

@Miki Он работает с камерой. Мне придется снова проверить мои кодеки. Я установил кодек K-Lite Mega, хотя – Croolman

+1

у вас есть opencv_ffmpeg dll в вашей переменной PATH или в двоичной директории? – Micka

ответ

0

EDIT: В конце папки бин был отсутствует в переменной PATH, поэтому после добавления новой записи - % OPENCV_DIR% \ bin, все работает propelly.

Неуклюжее решение: прибудет opencv_ffmpeg300.dll, opencv_ffmpeg.dll, те, что можно найти в библиотеке OpenCV - получить openh264-1.5.0-win64msvc.dll этот можно найти на Openh264 - копирование всех тех, в рабочий каталог проекта