我创建了一个项目并且它正常工作,重新安装操作系统后,我设置了环境和所有组件,突然间我根本没有得到任何输出。我的测试程序很简单:
#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;
}
我已经安装了所有必要的编解码器和更新的视频卡驱动程序。仍然得到相同的黑屏。
编辑:
问题似乎仅在使用AVC编解码器播放.avi视频
时答案 0 :(得分:0)
编辑: 最后,在PATH变量中缺少bin文件夹,因此在添加新条目 - %OPENCV_DIR%\ bin 之后,一切都在推进。
笨拙的解决方案: 获取opencv_ffmpeg300.dll,opencv_ffmpeg.dll,可以在opencv库中找到 - 获取openh264-1.5.0-win64msvc.dll这个可以在Openh264找到 - 将所有这些复制到项目的工作目录中