gpt4 book ai didi

opencv - OpenCV:.avi文件无法使用C++ API打开,无法使用C打开

转载 作者:行者123 更新时间:2023-12-02 16:41:43 33 4
gpt4 key购买 nike

有人可以向我解释为什么OpenCV无法使用C++ API打开.avi文件,而是使用C API打开它吗?

以下是两个代码段:

C++:

Mat source;
VideoCapture stream("Video.avi");

if (!stream.isOpened()){
std::cout << "Stream cannot be opened" << std::endl;
return -1;
}
while(1)

if(!stream.read(source)) {
std::cout << "Error reading video frame" << endl;
}

imshow("Source", source);

这无法打开Video.avi,并且“错误读取视频帧”被一次又一次地打印。 ffmpeg.dll在路径中,并且我还安装了ffdshow。

C:
CvCapture* stream = cvCreateFileCapture( "Video.avi" );
IplImage* source;
while(1) {
source = cvQueryFrame( stream );
if( !source ) printf("\n Problem");
Mat src(source);
imshow("source", src);
if(waitKey(1) >= 0) break;
}

这将毫无问题地打开Video.avi。

谢谢你的帮助 !

PS。也许值得一提的是Video.avi本身是使用OpenCV创建的。

最佳答案

您的C和C++代码不相等。该代码将起作用:

int main( int argc, char** argv )
{
Mat source;
VideoCapture stream("video.avi");

if (!stream.isOpened())
{
std::cout << "Stream cannot be opened" << std::endl;
return -1;
}

while(1)
{
stream >> source;
if(source.empty())
{
std::cout << "Error reading video frame" << endl;
}
imshow("Source", source);
waitKey(20);
}
stream.release();
getchar();
}

关于opencv - OpenCV:.avi文件无法使用C++ API打开,无法使用C打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18121086/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com