opencv 实现进度控制
进度控制:
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <opencv\cxcore.h>
//记录滚动条的当前位置
int g_slider_pos = 0; //滚动条的回调函数 参数int pos 是指当前滚动条所在位置
void on_changed(int pos)
{
//输出滚动条当前所在位置
printf("g_slider_pos is %d \n" , g_slider_pos); } int main(int argc, char* argv[])
{
//创建一个窗口
cvNamedWindow("show"); //在窗口show上创建名字为Position的滚动条
cvCreateTrackbar(
"Position",
"show",
&g_slider_pos,
400,
on_changed
); //显示滚动条
cvShowImage("show",NULL); //等待用户按键
cvWaitKey(0); return 0;
}
视频化的进度控制:
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <opencv\cxcore.h> //声明一个CvCapture类型指针 用于接收cvCreateFileCapture的返回值 CvCapture* g_capture = NULL; //记录滚动条的当前位置 int g_slider_pos = 0; //对视频帧进行计数的变量 int frame_count = 0; //滚动条的回调函数 参数int pos 是指当前滚动条所在位置 void onTrackbarSlider(int pos) { //设置g_capture的属性 使得 从位置pos开始播放视频 cvSetCaptureProperty( g_capture, CV_CAP_PROP_POS_FRAMES, pos ); //在拉动滚动条后 保持变量frame_count与滚动条的位置是同步的 frame_count = pos ; } int main(int argc, char* argv[]) { //创建一个窗口 cvNamedWindow("show"); //打开有一个视频文件 g_capture = cvCreateFileCapture("C:\\Users\\zxl\\Desktop\\1.avi"); //获取视频的总帧数 int frames = (int)cvGetCaptureProperty( g_capture, CV_CAP_PROP_FRAME_COUNT ); if(frames>0) { //在窗口show上创建名字为Position的滚动条 cvCreateTrackbar( "Position", "show", &g_slider_pos, frames, onTrackbarSlider ); } //图像指针变量 IplImage* frame; while(1) { //从g_capture获取一帧图像 填充到相应的内存缓冲区 frame = cvQueryFrame(g_capture); //如果到视频结尾 则退出循环 if(!frame) { break; } //显示图像 cvShowImage("show",frame); //接收用户按键 char c = cvWaitKey(33); //如果接收到 按键'Esc' 则退出循环 if(c==27) { break; } //滚动条 随着视频的播放 进行移动 cvSetTrackbarPos("Position","show", frame_count); frame_count++; } //释放资源 cvReleaseCapture(&g_capture); cvDestroyWindow("show"); return 0; }
opencv 实现进度控制的更多相关文章
- Opencv中视频播放与进度控制
视频画面本质上是由一帧一帧的连续图像组成的,播放视频其实就是在播放窗口把一系列连续图像按一定的时间间隔一幅幅贴上去实现的. 人眼在连续图像的刷新最少达到每秒24帧的时候,就分辨不出来图像间的闪动了,使 ...
- OpenCV视频进度播放控制
本来打算把进度条嵌入MFC的PIC空间里面,结果显示进度条消失,看来还是不要这个样子了. 全局变量区域: //2.初始化进度条的位置 int G_slider_position = 0; CvCapt ...
- OpenCV系列--摄像头控制的简单代码
操作系统:windows xp 开发工具:VS2008 opencv版本:2.1.0 依赖库:OpenCV2.1\lib\highgui.lib #include "cv.h" # ...
- WPF 媒体播放器(MediaElement)实例,实现进度和音量控制
WPF 视频音频播放控件MediaElement实现进度控制,音量控制实例 说明: 1.Volume控制音量的大小,double类型,并且实现了属性依赖,可以用来双向绑定:在 0 和 1. 之间的线性 ...
- C#多任务并行阶段控制—— Threading.Barrier
有一种场景:4个人同时做某项任务,该任务分为3个阶段,必须要4个人都完成第一阶段后才可以进入第二阶段,都完成第二阶段后才可以进入第三阶段. 此时就需要对多个并行的任务做进度控制. Threading. ...
- 使用Fusioncharts实现后台处理进度的前台展示
本文要解决两个问题: 1.在ajax的数据交互中,如何获得后台的处理进度? 2.在前台界面中,如何使用图形化的方式展示后台处理进度? 关于第一个问题,不是本文的重点,简单说一下思路.因为HTTP协 ...
- iOS进度条显示
一.实现下载文件进度控制 1.代码示例 1 #import "YYViewController.h" 2 3 @interface YYViewController () 4 @p ...
- JS控制flash的播放
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
前言 本章继续完善播放相关播放器的核心功能,为后续扩展打好基础. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://ove ...
随机推荐
- 【从零学习openCV】IOS7下的人脸检測
前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app,总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...
- _getch() 和 getch() 及 _T()
带下划线_的函数一般是函数库内部的函数,而不带下划线的一般是提供给用户使用的函数.带下划线的目的是为了防止用户定义的函数和函数库的函数重名冲突,所以直接使用也是可以的.要用getch()必须引入头文件 ...
- i2c sub system __i2c_board_list/klist_devices/klist_drivers
i2c_devinfo全局链表: __i2c_board_list 用来挂接 i2c_board_info,这个信息用来生成 i2c_client i2c_client 链表: i2c_bus_typ ...
- Excel02-快速无误输入多个零
第一步:设置单元格格式-->小数位数为0,货币符号为¥ 第二步:在单元格输入数据:1**5回车即显示为¥100,000 **N 表示后面有N个零,会自动加入我们设置的货币符号¥ 这对我们在输入巨 ...
- Tree( 树) 组件[1]
本节课重点了解 EasyUI 中 Tree(树)组件的使用方法, 这个组件依赖于 Draggable(拖动)和 Droppable(放置)组件. 一. 加载方式//class 加载方式<ul c ...
- 解决操作过快导致ajax异常的办法
//控制点击过快ajax异常 var state = true; function test() { if (state) { state = false; var val = accMul((uCo ...
- vb的LINQ实现
vb实现LINQ非常简单的例子: Dim numbers() As Integer = {1, 2, 3, 4, 5, 6, 7} Dim allNumbers = From number In nu ...
- Sql Server同步之订阅
1.新建一个订阅 2.订阅新建完成之后,先选择发布端 3.选择需要同步的组 4.选择目标数据库 5.选择链接发布端方式,采用sql server login 6.选择执行同步的计划 7.选择是立马执行 ...
- 国外十个出名的 upload 上传组件
在日常开发中,我们常会用到很多的组件及共用代码提高我们的开发效率. King MEDIA - $ 17.00 / 11 Sales DNNStore | 6/5/2014 6:06:42 PM| ...
- sql server代理中作业执行SSIS包失败
RT,执行失败了,总是只提示一句“以xxxx用户身份执行失败”,很难找原因. 引用 http://bbs.csdn.net/topics/300059148 Sql2005如何用dtexec运行ssi ...