给视频图像添加滚动条,是的用户可以动态调节缩放比例,缩放比例取值为2-8
2015-05-22 12:10
120 查看
练习:给视频图像添加滚动条,是的用户可以动态调节缩放比例,缩放比例取值为2-8
/*由于刚开始学习opencv,暂时还没有找到如何直接设定滚动条范围从2 -8,下限值的设定,未找到具体方法,所以暂时对缩放比例为0时,理解为比例不变*/
程序处理结果
#include "cv.h" #include "highgui.h" int g_slider_position=2;//通过回调函数,得到的滑块当前位置 CvCapture *g_capture=NULL; void OntrackbarSlider(int pos)//定义回调函数 { cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos); } int main() { //定义两个窗口用来显示视频缩放后的结果 cvNamedWindow("in",1); cvNamedWindow("out",1); //读入视频文件 CvCapture *capture=cvCreateFileCapture("testVideo.avi"); if(!capture) return -1; IplImage *frame=cvQueryFrame(capture);//获取视频帧 IplImage *out; //定义toolbar,缩放范围是2-8 cvCreateTrackbar("Scale","in",&g_slider_position,8,OntrackbarSlider); int oldPosition=g_slider_position; //缩放后目标图像帧的大小 CvSize dstSize; dstSize.width=(int)(1.0*frame->width/g_slider_position); dstSize.height=(int)(1.0*frame->height/g_slider_position); out=cvCreateImage(dstSize,frame->depth,frame->nChannels); while((frame=cvQueryFrame(capture))!=NULL) { if(oldPosition!=g_slider_position)//得到最新的缩放比例 { cvDestroyWindow("out"); cvReleaseImage(&out);//防止上次申请的内存泄露 oldPosition=g_slider_position; //由于暂时没有找到如何直接限制滚动条下限值,所以暂时把为0的情况,设置成比例不变 if (g_slider_position==0) { g_slider_position=1; } dstSize.width=(int)(1.0*frame->width/g_slider_position); dstSize.height=(int)(1.0*frame->height/g_slider_position); out=cvCreateImage(dstSize,frame->depth,frame->nChannels); cvNamedWindow("out",1); } cvResize(frame,out,CV_INTER_LINEAR); out->origin=1; cvShowImage("in",frame); cvShowImage("out",out); cvWaitKey(50); } cvReleaseCapture(&capture); cvDestroyWindow("in"); cvDestroyWindow("out"); cvReleaseImage(&out); return 0; }
/*由于刚开始学习opencv,暂时还没有找到如何直接设定滚动条范围从2 -8,下限值的设定,未找到具体方法,所以暂时对缩放比例为0时,理解为比例不变*/
程序处理结果
相关文章推荐
- OPENCV中画图像直方图(带刻度并可以通过滚动条调节直方图中直方条的个数)
- Treeview动态添加用户控件传值和取值的实例代码
- ROS中利用opencv3完成四个视频流拼接成一副图像显示,并添加track条进行参数调节
- TabControl控件的最佳实践,可以把一个窗体和用户控件添加进来
- python 类属性 实例属性 类属性只能添加给用户定义的类 不可以到内置类
- 生成一个可以编辑的表格,并可以动态地添加行
- php图像处理中的等比例缩放
- 意外地发现,VS.NET从解决方案资源管理器中把ascx文件拖到aspx的设计视图里就可以添加用户控件
- js动态添加表格逐行添加、删除、遍历取值的实例代码
- vue实现动态添加数据滚动条自动滚动到底部的示例代码
- 动态添加用户控件或服务器控件(一)
- Android 图像处理(类型转换,比例缩放,倒影,圆角)
- C# :实现水印与图片合成,并利用Graphics 压缩图像质量 , (委托实现listBox的动态添加提示)。。。。。。。。。。。。
- 可以设置宽高比,宽度确定,高度比例缩放的ImageView快速实现
- Android 图像处理(类型转换,比例缩放,倒影,圆角)
- iOS 【transform属性】-通过tramsform熟悉个可以修改对象的平移、缩放比例和旋转角度
- Web---Cookie技术(显示用户上次登录的时间、显示用户最近浏览的若干个图片(按比例缩放))
- 可编辑的table. 添加数据,修改数据。稍加修改就可以部署到ajax 动态表格中
- 向容器(PlaceHolder)中动态添加多个用户控件(UserControl)
- 动态添加的用户控件不执行事件(或执行事件消失)