Opencv学习笔记——视频高斯模糊并分别输出
2024-08-30 07:00:13
用两个窗口进行对比
#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;
}
最新文章
- git gui 学习
- PHP 接入芝麻信用 注意 事项
- 2016HUAS_ACM暑假集训4A - 递推
- Java 并发性和多线程
- FreeCodeCamp 前端初级算法(个人向)
- 关于lambda表达式在javascript中的使用
- Qt事件处理机制
- RIME输入法
- MAC Python环境配置以及安装Pycharm 5.4.0
- 查看pid
- CArray
- svn up出现类似svn: Error converting entry in directory &#39;.&#39; to UTF-8问题解决
- [Inside HotSpot] C1编译器工作流程及中间表示
- Linux的快捷键一
- OO课程第三次总结QWQ
- 51nod 1130 N的阶乘的长度 V2(斯特林近似)
- 在HashTable上下文中,同步指的是什么?
- 人类又被AI碾压,这次是星际争霸
- HashMap HashTable ConcurrentHashMap
- BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼