for (int i = 0; i < 100 ; i++)
{
m_capture = cvCaptureFromFile(filename); //获得AVI视频 //对视频帧进行提取,并转换为BMP图片格式
m_avi[k] = cvQueryFrame(m_capture);
k++;
}
//结果m_avi[i]中存放的都是第0帧 m_capture = cvCaptureFromFile(filename); //获得AVI视频 for (int i = 0; i < 100 ; i++)
{
//对视频帧进行提取,并转换为BMP图片格式
m_avi[k] = cvQueryFrame(m_capture);
k++;
}
//结果m_avi[i]中存放的都是第100帧 请问要怎么办才能从0帧存到第99帧,谢谢
{
m_capture = cvCaptureFromFile(filename); //获得AVI视频 //对视频帧进行提取,并转换为BMP图片格式
m_avi[k] = cvQueryFrame(m_capture);
k++;
}
//结果m_avi[i]中存放的都是第0帧 m_capture = cvCaptureFromFile(filename); //获得AVI视频 for (int i = 0; i < 100 ; i++)
{
//对视频帧进行提取,并转换为BMP图片格式
m_avi[k] = cvQueryFrame(m_capture);
k++;
}
//结果m_avi[i]中存放的都是第100帧 请问要怎么办才能从0帧存到第99帧,谢谢
解决方案 »
- 非模态对话框销毁的一点疑问
- vs2010 怎么删除已经建立的资源ID
- 加班不给钱 --- 郁闷 !!!
- 消息循环两次
- 请教: VC6 编译错误的行号指示不正确
- 请教如何将程序打包成可执行文件,即在没装VC的机器上也能运行
- 北京的兄弟们你们找工作通过哪几种方式
- Visual Studio.NET 2003 有没有中文版?
- 急。在ADO中创建数据库实例后,如果不open.退出就会出错???
- 简单问题5-关于调用另外一个exe文件的问题
- 客户端的心跳包怎么设计,比如客户端一个定时器,每隔一个时间发送一个信息给服务器,服务器返回一个信息,客户端知道服务器活着。
- SetupDiGetDeviceRegistryProperty用法
{
m_capture = cvCaptureFromFile(filename); //获得AVI视频 //对视频帧进行提取,并转换为BMP图片格式
m_avi[k] = cvQueryFrame(m_capture); k++;
}
//结果好象m_avi[i]中存放的都是第0帧
m_capture = cvCaptureFromFile(filename); //获得AVI视频for (int i = 0; i < 100 ; i++)
{
//对视频帧进行提取,并转换为BMP图片格式
m_avi[k] = cvQueryFrame(m_capture); k++;
}
//结果好象m_avi[i]中存放的都是第100帧请问要怎么办才能从0帧存到第99帧,谢谢
m_capture = cvCaptureFromFile(filename); //获得AVI视频 int k = 0;
IplImage* pFrame;while( NULL != ( pFrame = cvQueryFrame(m_capture) ) )
{
//对视频帧进行提取,并转换为BMP图片格式
cvCopy( pFrame, m_avi[ k++ ] ); //将当前视频拷贝到对应的m_avi[k]中
}PS:
对于楼主的问题存在以下疑问:
1:m_avi[k]分配好了吗?还是都是指针???
2. 转换成BMP图片格式的函数是否写好并正确调用??
注意:上述每cvQuery一帧,都是放在同一块内存中,下次读时会覆盖,也许你没有意识到这一点。