用两个窗口进行对比

#include "stdafx.h"
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "cv.h"
using namespace cv;
using namespace std; int g_slider_position = 0, temp;
CvCapture *g_captrue = NULL;
void onTrackbarSlide(int pos)
{
cvSetCaptureProperty(g_captrue, CV_CAP_PROP_POS_FRAMES,
pos);
temp = g_slider_position;
} int main(int argc, char **argv)
{
cvNamedWindow("sample-out", CV_WINDOW_AUTOSIZE);
//创建输出处理后视频的窗口
cvNamedWindow("sample", CV_WINDOW_AUTOSIZE);
//创建初始视频窗口
g_captrue = cvCreateFileCapture("sample.avi");
//Cvcapture结构体赋值
int frames = (int)cvGetCaptureProperty(g_captrue,
CV_CAP_PROP_FRAME_COUNT);
//获取视频总帧数
if (frames != 0)///若视频存在即帧数不为0则创建滚动条
{
cvCreateTrackbar("Position", "sample",
&g_slider_position, frames, onTrackbarSlide);
}
IplImage *frame;//创建图像指针
while (1)
{
frame = cvQueryFrame(g_captrue);//读取一帧
if (!frame)//读完退出
break;
cvShowImage("sample", frame);//显示在sample窗口中
IplImage* out = cvCreateImage(cvGetSize(frame),
IPL_DEPTH_8U, 3);
//创建视频地址并为其开辟空间。
cvSmooth(frame, out, CV_GAUSSIAN, 3, 3);//对每一帧高斯模糊
cvShowImage("sample-out", out);//视频输出到sample-out窗口中
char c = cvWaitKey(30);//每一帧间隔30ms
cvSetTrackbarPos("Position", "sample", temp++);//滚动条随动
if (c == 27)
break;
}
cvReleaseCapture(&g_captrue);//释放指针
cvDestroyWindow("sample");//删除sample初始视频窗口
cvDestroyWindow("sample-out");//删除sample-out处理后的视频窗口
return 0;
}

最新文章

  1. git gui 学习
  2. PHP 接入芝麻信用 注意 事项
  3. 2016HUAS_ACM暑假集训4A - 递推
  4. Java 并发性和多线程
  5. FreeCodeCamp 前端初级算法(个人向)
  6. 关于lambda表达式在javascript中的使用
  7. Qt事件处理机制
  8. RIME输入法
  9. MAC Python环境配置以及安装Pycharm 5.4.0
  10. 查看pid
  11. CArray
  12. svn up出现类似svn: Error converting entry in directory &#39;.&#39; to UTF-8问题解决
  13. [Inside HotSpot] C1编译器工作流程及中间表示
  14. Linux的快捷键一
  15. OO课程第三次总结QWQ
  16. 51nod 1130 N的阶乘的长度 V2(斯特林近似)
  17. 在HashTable上下文中,同步指的是什么?
  18. 人类又被AI碾压,这次是星际争霸
  19. HashMap HashTable ConcurrentHashMap
  20. BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼

热门文章

  1. Objective-C Composite Objects
  2. uvm.sv——UVM之道
  3. Windows系统下如何优化Android Studio
  4. Azure School女神相邀,把每分钟都过的更充实
  5. 包含日志文件getshell
  6. 洛谷 P1464 Function
  7. 通过例子理解 k8s 架构【转】
  8. XML解析(一) DOM解析
  9. PAT 乙级 1008
  10. database---many to many relationships(多对多关系型数据库)