OpenCV Trackbar 实现播放视频代码遇到的问题 cvQueryFrame cvCreateFileCapture cvCreateTrackbar cvSetTrackbarPos
2013-08-08 13:56
671 查看
OpenCV Trackbar 实现控制播放视频代码遇到的问题
cvQueryFrame cvCreateFileCapture cvCreateTrackbar cvSetTrackbarPos
在学习OpenCV的时候,学到视频播放控制的时候,遇到了这个函数:cvSetTrackbarPos,书籍给的标程运行起来总是遇到问题
http://www.opencvchina.com/thread-3180-1-1.html http://blog.csdn.net/cwjcwj520/article/details/7345675
这两个朋友跟我遇到的是同一个问题
代码:
运行的时候,cvQueryFrame仅仅执行1次就break了,可是frame并不是null,调试发现它里边全是未知的内容,一堆??,???,??,?,但是g_capture的地址一点没有改变,是正确的地址,为什么地址是正确的,但是数值是未知的呢?网上有人说:
“有时候函数cvGetCaptureProperty在cvQueryFrame被调用一次后,再调用cvGetCaptureProperty才会返回正确的数值。这是一个bug,建议在调用此函数前先调用cvQueryFrame。”
但是增加了之后也没出正确结果,最后将if(frame_count >= frames)break;代替了if( !frame )break;暂时就这样跳出来吧。
转载请注明原地址。
cvQueryFrame cvCreateFileCapture cvCreateTrackbar cvSetTrackbarPos
在学习OpenCV的时候,学到视频播放控制的时候,遇到了这个函数:cvSetTrackbarPos,书籍给的标程运行起来总是遇到问题
http://www.opencvchina.com/thread-3180-1-1.html http://blog.csdn.net/cwjcwj520/article/details/7345675
这两个朋友跟我遇到的是同一个问题
代码:
#include <stdio.h> #include <iostream> #include <fstream> #include "cv.h" #include "highgui.h" using namespace std; int frames_count = 0; int g_slider_position = 0; CvCapture* g_capture = NULL; void onTrackbarSlide(int pos) { cvSetCaptureProperty( g_capture, CV_CAP_PROP_POS_FRAMES, pos ); frames_count = pos ; } int main( int argc, char** argv ) { string avipath; cin>>avipath; cvNamedWindow( "Example2_3", CV_WINDOW_AUTOSIZE ); g_capture = cvCreateFileCapture((char*)(avipath.c_str())); int frames = (int) cvGetCaptureProperty( g_capture, CV_CAP_PROP_FRAME_COUNT ); if(frames > 0) { cvCreateTrackbar( "Position", "Example2_3", &g_slider_position, frames, onTrackbarSlide ); } IplImage* frame; while(1) {
//--------------------------------------------------------------- frame = cvQueryFrame( g_capture ); if( !frame )break; cvShowImage( "Example2_3", frame ); char c = (char)cvWaitKey(10); if( c == 27 ) break; cvSetTrackbarPos("Position","Example2_3",frame_count); frames_count++;
//----------------------------------------------------------------- } cvReleaseCapture( &g_capture ); cvDestroyWindow( "Example2_3" ); return(0); }注意圈出来的区域代码:
运行的时候,cvQueryFrame仅仅执行1次就break了,可是frame并不是null,调试发现它里边全是未知的内容,一堆??,???,??,?,但是g_capture的地址一点没有改变,是正确的地址,为什么地址是正确的,但是数值是未知的呢?网上有人说:
“有时候函数cvGetCaptureProperty在cvQueryFrame被调用一次后,再调用cvGetCaptureProperty才会返回正确的数值。这是一个bug,建议在调用此函数前先调用cvQueryFrame。”
但是增加了之后也没出正确结果,最后将if(frame_count >= frames)break;代替了if( !frame )break;暂时就这样跳出来吧。
转载请注明原地址。
相关文章推荐
- html5-video视频标签播放视频实现过程中遇到的一系列问题。
- Ionic3学习笔记(十四)使用 videogular2 实现视频播放以及遇到的一些问题
- OpenCV Trackbar 控制视频播放 cvSetTrackbarPos 的问题
- Ionic3学习笔记(十四)使用 videogular2 实现视频播放以及遇到的一些问题
- MATLAB中imfilter函数用Opencv 实现遇到的若干问题
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
- Android 仿今日头条的视频播放控件(几行代码快速实现)
- C#使用EmguCV实现视频读取和播放,及多个视频一起播放的问题
- QT5+opencv3.1实现视频播放加实时直方图
- opencv中实现滚动条随着视频播放移动(回调函数)
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
- Zedboardwebcam设计问题篇(五)opencv处理帧数据,函数代码实现
- opencv中实现滚动条随着视频播放移动
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
- 学习opencv之添加滚动条到视频中,并实现滚动条随着视频播放自动移动
- opencv实现视频播放
- 傅里叶变换方法求图像卷积-OpenCV实现 遇到的问题!!!求指教!!!!!!
- PotPlayer播放器在双屏扩展模式下,视频播放时所遇到的几个常见问题的专业解答
- H5 video播放视频遇到的问题