使用opencv3.1,打开文件,返回0,同样的代码用opencv2.1的库就没问题,为啥呢

李_军 2016-03-22 01:18:52
vs2010

#include "opencv2\opencv.hpp"


#ifdef _DEBUG
#pragma comment(lib,"opencv_world310d.lib")
#else
#pragma comment(lib,"opencv_world310.lib")
#endif
CvCapture *VideoCap; //载入视频
IplImage *SrcImage; //原图像
PLAYOPENCV_API void __stdcall SetPlayFileName(char *FileName)
{
VideoCap = cvCreateFileCapture(FileName);//读取指定位置处的视频
}
PLAYOPENCV_API int __stdcall GrabFileName(char *FileName,int SplitNum) //每间隔几帧,抓取一帧图像
{
int i;
for (i=0;i<SplitNum;i++)
cvQueryFrame(VideoCap);
SrcImage = cvQueryFrame(VideoCap);
if(!SrcImage)
return 0;
cvSaveImage(FileName,SrcImage);
return -1;
}

这段代码,使用2.1的dll库都能抓取图片,为什么使用3.1的库,VideoCap始终返回0.同样的一个文件放在
d:\1.avi

VideoCap始终为0 ,同样的代码同样的文件 opencv3.1为啥不行呢
...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiter 2016-07-20
  • 打赏
  • 举报
回复
你这个问题啊,我猜测可能是库的配置问题,应该是版本2的配置正确,而3 有的地方错误了
晒月光的青蛙 2016-03-22
  • 打赏
  • 举报
回复
最好有opencv的源代码,debug进去就知道为什么读不到图像了
赵4老师 2016-03-22
  • 打赏
  • 举报
回复
用depends.exe分别查看你两个版本的exe依赖的dll

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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