opencv 打开视频的问题 弄了很久没有解决 求解答

2018-07-28 12:14:50 +08:00
 Suyou520
#include"highgui.h"

int main(int argc, char** argv)
{
cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE);
CvCapture* capture = cvCreateFileCapture("F:\\learn files\\OpenCV\\text3.avi");
if (!capture)
{

printf("capture failed!\n");
return -1;
}
IplImage* frame;
while (1)
{
frame = cvQueryFrame( capture );
if (!frame) break;
cvShowImage("Example2", frame);
char c = cvWaitKey(33);
if (c == 27)break;

}
cvReleaseCapture( &capture );
cvDestroyWindow("Example2");
}

就是一个很简单的打开的 avi 文件
但是打开总是灰屏闪退
文件位置也没有问题
网上查说是没有装解码器
但是下了 xvid 还是没有用
在逐行调试的时候 dos 会出现
[ WARN:0]cvCreateFileCaptureWithPreference: backend FFMPEG doesn't support legacy API anymore.
[ WARN:0] cvCreateFileCaptureWithPreference: backend MSMF doesn't support legacy API anymore.
请问这是什么情况 要怎么解决啊
谢谢各位大佬们
4126 次点击
所在节点    问与答
4 条回复
Suyou520
2018-07-28 14:11:17 +08:00
刚才尝试了一下,用这段代码调用摄像头,同样会出问题,dos 一样会出现那两行,而且摄像头黑屏,但是摄像头灯已经亮了
Muniesa
2018-07-29 02:06:12 +08:00
试试不用指针的方法读取?
huanyuwuren
2019-05-27 22:21:58 +08:00
用的 opencv3.4.5,和你遇到一样问题,不知道你的问题解决没?我也是学习 opencv 时遇到的,看了第一条 warning,猜测可能是高版本 ffmpeg 已经不支持这个函数了,就下载了 3.4.0,然后把 opencv_ffmpeg340_dll 复制到项目文件夹里,就解决了,哈哈;估计这么长时间你已经搞定,希望帮到其他人
huanyuwuren
2019-05-27 22:22:44 +08:00
哎,学习一个新东西没人带,真心累啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/474891

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX