Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在opencv中打开文件(/home/vaibhav/opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:553)时出错_Opencv - Fatal编程技术网

在opencv中打开文件(/home/vaibhav/opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:553)时出错

在opencv中打开文件(/home/vaibhav/opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:553)时出错,opencv,Opencv,我正在使用OpenCV显示视频 我的代码是 #include<opencv2/highgui.hpp> #include<cv.h> #include<opencv/cv.hpp> #include<opencv2/opencv.hpp> #include<cvaux.h> #include<cxcore.h> #include<stdio.h> #include<highgui.h> #includ

我正在使用OpenCV显示视频 我的代码是

#include<opencv2/highgui.hpp>
#include<cv.h>
#include<opencv/cv.hpp>
#include<opencv2/opencv.hpp>
#include<cvaux.h>
#include<cxcore.h>
#include<stdio.h>
#include<highgui.h>
#include<stdlib.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
int main( int argc, char ** argv )
{
CvCapture* capture;
cvNamedWindow( "video", CV_WINDOW_AUTOSIZE ); 
capture = cvCreateFileCapture("/home/vaibhav/program/c/w.avi");
IplImage* frame;
while(1){
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "video", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}

cvReleaseCapture( &capture );

cvDestroyWindow( "Webcam" );

return 0; }

为了澄清这里的一些混乱:

该错误意味着它无法找到或打开您的视频文件。(未找到文件或编解码器不存在)

“/home/vaibhav/opencv/modules/highgui/src/cap_ffmpeg_impl.hpp:553”只是引发错误的代码位置


(请不要使用已弃用的C-API,5年前停止开发,切换到C++)。所以,只要把视频放在一个地方,你不需要给出一个你目前正在做的很长的路径(只是为了看看你的程序可以工作)。例如,我把我的视频放在“源文件夹”外面,所以我只写

capture=cvCreateFileCapture(“video.avi”)

我也有同样的问题。非常烦人(opencv 2.4.9)。但对我有效的是传递绝对文件名(avi或mpeg),即整个路径

例如:


如果使用绝对路径,请在路径上添加双斜杠,如下所示

data = cv2.VideoCapture('C:\Data\MyVideo.mp4')

data.isOpened()
Out[11]:假

Out[13]:对


我也有同样的问题,我做了两件事(我在Windows 10上使用Python 2.7.9):

首先,将此文件夹添加到Path变量:

C:\opencv\sources\3rdparty\ffmpeg\

并且该文件必须具有正确的opencv版本。例如,对我来说是3.0.0,所以你需要自己更改它

接下来,确保在视频路径中添加额外的反斜杠:

video_capture = cv2.VideoCapture ('C:\Temp\\bouncingBall.avi')
Python有一些特殊字符,所以如果只有一个反斜杠,它将以不同的方式解释它,从而抛出一个错误。您可以在此处看到更多信息:

因此出现了双反斜杠


无论如何,希望这有帮助

在出现相同问题后,我又添加了一个标题,
opencv/ml.h
,用于机器学习。使用此标头和路径变量
C:\opencv\sources\3rdparty\ffmpeg\
您的代码可以在我的机器上运行

我面临同样的问题,但问题是我使用了错误的解决方案

改变

rtsp://admin:admin@192.168.1.58:554/h264/video.sdp?camera=13
默认情况下解决了它。(不显示分辨率参数)


顺便说一句:EVO-05迷你版

我只是在整个视频路径中使用了双引号,而不是单引号,这对我很有效!(在windows上)

我该怎么办请告诉我代码在skm PC中工作正常my有什么问题我遇到了相同的错误-尽管我的原因可能是不同的问题,但由于这个问题一直没有得到解决,我已经将这个澄清降级了,因为它没有帮助。问题的作者如果在Ubuntu上,并且已经通过了完整路径,所以答案似乎不适合他的问题。我正在使用Windows 7 64位和Visual Studio 2013。这个答案解决了我的问题。谢谢这可能是Windows的解决方案,但不是Linux,在Linux中,斜杠通常用于所有路径
data = cv2.VideoCapture('C:\\\Data\\\MyVideo.mp4')

data.isOpened()
video_capture = cv2.VideoCapture ('C:\Temp\\bouncingBall.avi')
rtsp://admin:admin@192.168.1.58:554/h264/video.sdp?camera=13
rtsp://admin:admin@192.168.1.58:554/h264/video.sdp