我正在使用win 8.1和visual studio 2013社区。我从here下载openCV3.0.0。我想要做的是阅读视频。以下是我的代码
#include "stdafx.h"
#include "opencv2/opencv.hpp"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
cv::VideoCapture cap("bb.mp4");
if (!cap.isOpened()){
std::cout << "Cannot open video!\n";
return -1;
}
cv::Mat frame;
while (cap.read(frame)){
cv::imshow("frame", frame);
char key = cv::waitKey(1) & 0xFF;
}
return 0;
}
问题是cap.isOpened()
总是返回false,即使我给出了绝对路径cv::VideoCapture cap("D:\\bb.mp4")
。以下是另一个正常运作的玩具程序。
#include "stdafx.h"
#include "opencv2/opencv.hpp"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
cv::Mat img = cv::imread("aa.jpg");
cv::imshow("img", img);
char key = cv::waitKey(1) & 0xFF;
return 0;
}
第二个程序显示我可以正确编译包含openCV库的程序,并且文件的路径也应该正确,因为aa.jpg和bb.mp4放在同一个文件夹中。任何人都知道如何解决这个问题?