菜鸟提问,求大神看过来,关于opencv打开视频的问题

yzh浣熊 2014-03-05 10:43:04
我用opencv打开视频,可是视频出不来,就是一闪而过,我以为是我调节帧吕的关系,结果调慢了还是一样,不知道是为嘛,以下是我的代码:

#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"


int main(int argc, char* argv[])
{
cvNamedWindow("avi");
CvCapture* capture=cvCreateFileCapture("C:\\Users\\w\\DocumentsLeawo\\Video_Converter");
IplImage* frame;
while(1)
{
frame=cvQueryFrame(capture);

if(!frame)
{
break;
}
cvShowImage("avi",frame);

char c=cvWaitKey(20000);

if(c == 27)
{
break;
}
}
cvReleaseCapture(&capture);
cvDestroyWindow("avi");
return 0;
}

调试之后下面的提示是这样的:

Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\KernelBase.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\highgui099.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\cxcore099.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\user32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\gdi32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\lpk.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\usp10.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\msvcrt.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\advapi32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\sechost.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\rpcrt4.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\libguide40.dll', no matching symbolic information found.
Loaded 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.16661_none_ebfb56996c72aefc\comctl32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\avifil32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\winmm.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\ole32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\msacm32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\msvfw32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\shell32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\shlwapi.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\avicap32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\version.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\imm32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\msctf.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\uxtheme.dll', no matching symbolic information found.
Loaded 'C:\Program Files\360\360safe\safemon\safemon.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\oleaut32.dll', no matching symbolic information found.
Loaded 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16661_none_420fe3fa2b8113bd\comctl32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\psapi.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\wininet.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\normaliz.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\iertutil.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\urlmon.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\ws2_32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\nsi.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\netapi32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\netutils.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\srvcli.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\wkscli.dll', no matching symbolic information found.
Loaded 'C:\Program Files\Kingsoft\Kingsoft Antivirus\kwsui.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\wtsapi32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\apphelp.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\QQPinyin.ime', no matching symbolic information found.
Loaded 'C:\Windows\System32\msimg32.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\profapi.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\winsta.dll', no matching symbolic information found.
Loaded 'C:\Windows\System32\dwmapi.dll', no matching symbolic information found.
First-chance exception in text_avi.exe (KERNELBASE.DLL): 0x000006BA: (no name).
First-chance exception in text_avi.exe (KERNELBASE.DLL): 0x000006BA: (no name).
Loaded 'C:\Windows\System32\cryptbase.dll', no matching symbolic information found.
The thread 0x2584 has exited with code 0 (0x0).
The thread 0x1A98 has exited with code 0 (0x0).
The thread 0x25D8 has exited with code 0 (0x0).
The program 'C:\code\text_avi\Debug\text_avi.exe' has exited with code 0 (0x0).
希望大神能给我解答解答,万分感谢
...全文
302 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hdsaklds 2016-03-13
  • 打赏
  • 举报
回复
我也遇到了同样的问题 视频第一帧一闪而过 怎么办啊??
JiMoKuangXiangQu 2014-03-05
  • 打赏
  • 举报
回复
我对OpenCV了解也有限,以前业余做过一个人脸识别的案子,碰到过类似问题,做过些笔记,刚好可以给你些建议,呵呵。
JiMoKuangXiangQu 2014-03-05
  • 打赏
  • 举报
回复
以上是几种可能的原因,如果还是不行,那...嘿嘿,我也不清楚了,可能需要调查OpenCV本身的配置了。
JiMoKuangXiangQu 2014-03-05
  • 打赏
  • 举报
回复
1. 视频文件路径没写对; 2. 如果你使用的Opencv2.0或更高版本,试下把 opencv_ffmpeg210.dll 放到程序的当前目录; 3. 可能你的视频文件的编码方式不能被API识别,考虑更换视频文件; 4. 没有安装解码器。
yzh浣熊 2014-03-05
  • 打赏
  • 举报
回复
引用 3 楼 JiMoKuangXiangQu 的回复:
[quote=引用 2 楼 u013720248 的回复:] [quote=引用 1 楼 JiMoKuangXiangQu 的回复:] 从调试信息来看,
The thread 0x2584 has exited with code 0 (0x0).
The thread 0x1A98 has exited with code 0 (0x0).
The thread 0x25D8 has exited with code 0 (0x0).
The program 'C:\code\text_avi\Debug\text_avi.exe' has exited with code 0 (0x0).
程序应该都是正常退出的,可能是太快了,来不及看到。 可以在 main() 的
return 0;
语句前加一个起暂停作用的代码,如: system("pause"); 再试试看。 个人建议,仅供参考。
刚刚试了下,不行,不过还是感谢你哈[/quote] 建议检查下语句:
CvCapture* capture=cvCreateFileCapture("C:\\Users\\w\\DocumentsLeawo\\Video_Converter");
返回的capture指针值是否为NULL。[/quote] 对的,是0,那说明我的指针没有正确返回是吗,要怎么改
JiMoKuangXiangQu 2014-03-05
  • 打赏
  • 举报
回复
引用 2 楼 u013720248 的回复:
[quote=引用 1 楼 JiMoKuangXiangQu 的回复:] 从调试信息来看,
The thread 0x2584 has exited with code 0 (0x0).
The thread 0x1A98 has exited with code 0 (0x0).
The thread 0x25D8 has exited with code 0 (0x0).
The program 'C:\code\text_avi\Debug\text_avi.exe' has exited with code 0 (0x0).
程序应该都是正常退出的,可能是太快了,来不及看到。 可以在 main() 的
return 0;
语句前加一个起暂停作用的代码,如: system("pause"); 再试试看。 个人建议,仅供参考。
刚刚试了下,不行,不过还是感谢你哈[/quote] 建议检查下语句:
CvCapture* capture=cvCreateFileCapture("C:\\Users\\w\\DocumentsLeawo\\Video_Converter");
返回的capture指针值是否为NULL。
yzh浣熊 2014-03-05
  • 打赏
  • 举报
回复
引用 1 楼 JiMoKuangXiangQu 的回复:
从调试信息来看,
The thread 0x2584 has exited with code 0 (0x0).
The thread 0x1A98 has exited with code 0 (0x0).
The thread 0x25D8 has exited with code 0 (0x0).
The program 'C:\code\text_avi\Debug\text_avi.exe' has exited with code 0 (0x0).
程序应该都是正常退出的,可能是太快了,来不及看到。 可以在 main() 的
return 0;
语句前加一个起暂停作用的代码,如: system("pause"); 再试试看。 个人建议,仅供参考。
刚刚试了下,不行,不过还是感谢你哈
JiMoKuangXiangQu 2014-03-05
  • 打赏
  • 举报
回复
从调试信息来看,
The thread 0x2584 has exited with code 0 (0x0).
The thread 0x1A98 has exited with code 0 (0x0).
The thread 0x25D8 has exited with code 0 (0x0).
The program 'C:\code\text_avi\Debug\text_avi.exe' has exited with code 0 (0x0).
程序应该都是正常退出的,可能是太快了,来不及看到。 可以在 main() 的
return 0;
语句前加一个起暂停作用的代码,如: system("pause"); 再试试看。 个人建议,仅供参考。
ganmaojiushijiu 2014-03-05
  • 打赏
  • 举报
回复
程序退出后,系统会自动清除你申请的内存,CvCapture指针所指向的内容已经被消除
JiMoKuangXiangQu 2014-03-05
  • 打赏
  • 举报
回复
可以结合使用cvGetErrStatus()、cvErrorStr(),将cvGetErrStatus()返回的错误代码传给 cvErrorStr()。cvErrorStr()会返回一个错误状态描述的字符串描述。
JiMoKuangXiangQu 2014-03-05
  • 打赏
  • 举报
回复
你使用openCV 1.0,下面是API的帮助链接: http://www.cs.indiana.edu/cgi-pub/oleykin/website/OpenCVHelp/ 在查询所有函数时,从左边列出的函数列表里面按字母顺序去查找。注意,在查找时去掉函数名前的"cv"然后再查找。 下面的链接是cvGetErrStatus()的使用方法: http://www.cs.indiana.edu/cgi-pub/oleykin/website/OpenCVHelp/
JiMoKuangXiangQu 2014-03-05
  • 打赏
  • 举报
回复
引用 12 楼 u013720248 的回复:
[quote=引用 11 楼 JiMoKuangXiangQu 的回复:] [quote=引用 10 楼 u013720248 的回复:] [quote=引用 5 楼 JiMoKuangXiangQu 的回复:] 1. 视频文件路径没写对; 2. 如果你使用的Opencv2.0或更高版本,试下把 opencv_ffmpeg210.dll 放到程序的当前目录; 3. 可能你的视频文件的编码方式不能被API识别,考虑更换视频文件; 4. 没有安装解码器。
我用的是1.0版本的啊[/quote] 既然你使用1.0版本,那第二点可以暂不考虑。 检查1,3,4看看。[/quote] 请问下狸窝视频转换器转后之后算不算解码啊?能不能加个扣扣?[/quote] 那应该没有问题。如果仔细检查1,3,4后确实确认没错,那就使用openCV的错误相关API,获取错误信息, 再来分析。 可调用cvGetErrStatus()来获取错误状态,然后参照openCV官方文档,对比错误代码,看能否找到错误原因。 如果不熟悉openCV的错误处理方式,可以随便到网上搜索下,有大量的信息可以获取。
yzh浣熊 2014-03-05
  • 打赏
  • 举报
回复
引用 11 楼 JiMoKuangXiangQu 的回复:
[quote=引用 10 楼 u013720248 的回复:] [quote=引用 5 楼 JiMoKuangXiangQu 的回复:] 1. 视频文件路径没写对; 2. 如果你使用的Opencv2.0或更高版本,试下把 opencv_ffmpeg210.dll 放到程序的当前目录; 3. 可能你的视频文件的编码方式不能被API识别,考虑更换视频文件; 4. 没有安装解码器。
我用的是1.0版本的啊[/quote] 既然你使用1.0版本,那第二点可以暂不考虑。 检查1,3,4看看。[/quote] 请问下狸窝视频转换器转后之后算不算解码啊?能不能加个扣扣?
JiMoKuangXiangQu 2014-03-05
  • 打赏
  • 举报
回复
引用 10 楼 u013720248 的回复:
[quote=引用 5 楼 JiMoKuangXiangQu 的回复:] 1. 视频文件路径没写对; 2. 如果你使用的Opencv2.0或更高版本,试下把 opencv_ffmpeg210.dll 放到程序的当前目录; 3. 可能你的视频文件的编码方式不能被API识别,考虑更换视频文件; 4. 没有安装解码器。
我用的是1.0版本的啊[/quote] 既然你使用1.0版本,那第二点可以暂不考虑。 检查1,3,4看看。
yzh浣熊 2014-03-05
  • 打赏
  • 举报
回复
引用 5 楼 JiMoKuangXiangQu 的回复:
1. 视频文件路径没写对; 2. 如果你使用的Opencv2.0或更高版本,试下把 opencv_ffmpeg210.dll 放到程序的当前目录; 3. 可能你的视频文件的编码方式不能被API识别,考虑更换视频文件; 4. 没有安装解码器。
我用的是1.0版本的啊
yzh浣熊 2014-03-05
  • 打赏
  • 举报
回复
引用 5 楼 JiMoKuangXiangQu 的回复:
1. 视频文件路径没写对; 2. 如果你使用的Opencv2.0或更高版本,试下把 opencv_ffmpeg210.dll 放到程序的当前目录; 3. 可能你的视频文件的编码方式不能被API识别,考虑更换视频文件; 4. 没有安装解码器。
我安装的是狸窝视频转换器,请问第2条怎么实现,我实在太菜了
yzh浣熊 2014-03-05
  • 打赏
  • 举报
回复
引用 7 楼 JiMoKuangXiangQu 的回复:
我对OpenCV了解也有限,以前业余做过一个人脸识别的案子,碰到过类似问题,做过些笔记,刚好可以给你些建议,呵呵。
太感谢您了,我来试试哈

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧