这是我的代码。无法在opencv3.3中播放视频文件。我是OpenCV的初学者。请帮帮我。
int main(void) {
cv::VideoCapture capVideo;
cv::Mat imgFrame;
capVideo.open("C:\\Users\\sbv\\Documents\\MyVideo.avi");
if (!capVideo.isOpened()) {
std::cout << "\nerror reading video file" << std::endl << std::endl;
_getch();
return(0);
}
if (capVideo.get(CV_CAP_PROP_FRAME_COUNT) < 1) {
std::cout << "\nerror: video file must have at least one frame";
_getch();
return(0);
}
capVideo.read(imgFrame);
char chCheckForEscKey = 0;
while (capVideo.isOpened() && chCheckForEscKey != 27) {
cv::imshow("imgFrame", imgFrame);
if ((capVideo.get(CV_CAP_PROP_POS_FRAMES) + 1) < capVideo.get(CV_CAP_PROP_FRAME_COUNT))
{
capVideo.read(imgFrame);
}
else
{
std::cout << "end of video\n";
break;
}
chCheckForEscKey = cv::waitKey(1);
}
if (chCheckForEscKey != 27) {
cv::waitKey(0);
}
return(0);
}
错误即将发生:
读取视频文件时出错。
请解决此问题。
答案 0 :(得分:1)
对于我来说,解决方案是将opencv_ffmpeg320_64.dll文件复制到我项目的文件夹中
答案 1 :(得分:0)
问题很明显 capVideo.open(&#34; C:\用户\ SBV \文件\ MyVideo.avi&#34);
您尝试在路径中打开MyVideo.avi:
C:\\Users\\sbv\\Documents\\MyVideo.avi
但该文件在该路径中不存在。
快速修复:在cygwin中工作
capVideo.open("C:/Users/sbv/Documents/MyVideo.avi");
或者将MyVideo.avi放在与程序相同的目录中。