繁体   English   中英

OpenCV VideoCapture无法读取Windows 7 32bit中的任何视频文件

[英]OpenCV VideoCapture not read any video File in Windows 7 32bit

我尝试使用QtCreator和CMake 2.8.12.1在C ++中使用OpenCV2.4.8的VideoCapture类读取.avi或.mpeg视频文件。 在构建OpenCV之前,我先下载FFMPEG静态版本并将其放入Program Files目录,然后将其路径添加到环境变量PATH中,然后下载K Lite Codec Pack Full,安装它,然后才由Qt用CMAKE和mingw构建OpenCV。 。 安装后,我将内置OpenCV的正确路径添加到PATH中。 来自网络摄像头的流可以正常工作,但是来自视频文件的流不起作用。 我在Windows 7 32bit和Windows 8 64bit上尝试过。 这是代码

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include "opencv2/opencv.hpp"
cv::Mat img;
cv::VideoCapture cap("Prova.avi");
std::cerr << cap.isOpened() << std::endl;
while(cap.read(img)){
    cv::imshow("Opencv", img);
    cv::waitKey(33);
}

相同的代码在具有相同版本的OpenCV和由我自己构建的ffmpeg的Ubuntu 12.04上可以工作。 怎么了?

下载文件opencv_ffmpeg.dll 我是从这里得到的

现在根据您使用的opencv版本重命名opencv_ffmpeg.dll 对于OpenCv 2.4.8,将其重命名为opencv_ffmpeg248.dll然后将此文件的位置添加到环境变量中的PATH中。 现在尝试运行您的程序。

由于某些未知原因,该建筑物在32位系统中创建了一个名为opencv_ffmpeg248_64.dll的dll,而opencv的安装位于文件夹“ x64”中,因此我认为该dll适用于64位系统。 我下载了openCV的预构建版本,并且使用了该软件包中包含的dll。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM