第四天:鼠标截图+滑动条播放视频实例
来源:互联网 发布:网络安全教育视频大学 编辑:程序博客网 时间:2024/06/05 14:14
一、主要功能
(1)、鼠标左键按下拖动显示轨迹,鼠标左键弹起显示截图并保存截图到本地。
(2)、视频播放时,滑动条同时显示播放帧的位置和视频帧率,滑动条拖动时可以实现同步指定帧播放。
#include "opencv2/opencv.hpp"#include <iostream>using namespace std;using namespace cv;Mat img = imread("1.jpg");Mat temp = img.clone();Mat ROI;Point pt;bool flag = false;double Fps;///鼠标消息回调函数//void OnMouse(int event, int x, int y, int flag, void* param)//{//switch(event)//{//case CV_EVENT_LBUTTONDOWN: //鼠标左键按下////cout<<"left button down"<<endl;//flag = true;//pt.x = x;//pt.y = y;//break;//case CV_EVENT_MOUSEMOVE: //鼠标移动////cout<<"mouse move"<<endl;//if(flag)//{//temp.copyTo(img);//rectangle(img, pt, Point(x, y), Scalar(0, 255, 0), 2, 8);//}//break;//case CV_EVENT_LBUTTONUP: //鼠标左键弹起////cout<<"left button up"<<endl;//flag = false;//ROI = temp(Rect(pt.x, pt.y, x-pt.x, y-pt.y)); //确定ROI区域//imshow("ROI", ROI);//imwrite("ROI.bmp", ROI);//break;//default://break;//}//}int value;int framePos; void OnChange(int , void* param){VideoCapture cap = *(VideoCapture*)param;cap.set(CV_CAP_PROP_POS_FRAMES, value); //设置视频帧位置}void main(){///鼠标截图功能//namedWindow("Mouse", CV_WINDOW_AUTOSIZE);//setMouseCallback("Mouse", OnMouse, 0); //设置鼠标回调函数//while(1)//{//imshow("Mouse", img);//if(27 == waitKey(10)) //Esc跳出循环//break;//}char strFps[20];Mat frame;VideoCapture cap("1.avi");if(!cap.isOpened()) //打开视频失败return;int FrameCount = cap.get(CV_CAP_PROP_FRAME_COUNT); //获取视频总帧数namedWindow("Video", CV_WINDOW_AUTOSIZE);createTrackbar("Frame", "Video", &value, FrameCount, OnChange, &cap);Fps = cap.get(CV_CAP_PROP_FPS); //获取视频帧率sprintf(strFps, "Fps:%0.1f/s", Fps); //格式化字符串while(1){framePos = cap.get(CV_CAP_PROP_POS_FRAMES); //获取视频帧位置setTrackbarPos("Frame", "Video", framePos); //设置滑动条位置cap>>frame;if(frame.empty()) //取帧失败break;putText(frame, strFps, Point(5, 30), CV_FONT_HERSHEY_COMPLEX_SMALL, 1, Scalar(0, 255, 0), 1, 8);imshow("Video", frame);if(27 == waitKey(1000/Fps) ) //Esc跳出循环退出break;}cap.release();destroyAllWindows();}图示:
1、
2、
阅读全文
0 0
- 第四天:鼠标截图+滑动条播放视频实例
- OpenCV学习之滚动条播放视频
- 【OpenCV学习笔记】九、实例应用(二)鼠标截图程序及滑动条视频播放程序
- 鼠标放上去盒子向上滑动
- 放截图~~
- 一个鼠标滑动的JS应用实例
- 鼠标截图
- android 项目学习随笔十六( 广告轮播条播放)
- 鼠标放div,box-shadow加深;hover实例
- 视频截图
- 视频 截图
- 视频截图
- 视频截图
- 视频截图
- 鼠标截图画框
- ubuntu 鼠标截图 scrot
- Javscript复习第四天鼠标事件
- BIRT报表鼠标放在图形上显示value以及钻取超链接功能实例
- ER Studio 使用笔记
- 微信小程序tabBar底部导航中文注解api
- 成为一个高级Java架构师所需要具备那些技能呢?
- 关于Session(javax.servlet.HttpSession)持久化----为什么实体类需要实现序列化接口
- iOS之#pragma和_Pragma区别
- 第四天:鼠标截图+滑动条播放视频实例
- linux正确重启MySQL的方法
- VB6的一个奇技淫巧
- BigDecimal除法
- 使用java发送邮箱
- 条形码组件VintaSoftBarcode.NET SDK v10.0发布,增强条码识别、生成功能
- 最最最最基本算法(一)--
- 商品的收藏和取消收藏(MVC)
- 3、C程序 数组排序之[鸡尾酒排序]