opencv下摄像头的采集和保存
来源:互联网 发布:2015年程序员考试真题 编辑:程序博客网 时间:2024/04/26 19:39
#include <iostream>#include <opencv2/highgui/highgui.hpp>#include <cv.h>#include <cxcore.h>#include <signal.h>#include <stdlib.h>using namespace std;using namespace cv;#define LEN 128IplImage *FrameImage;IplImage *camFrame = NULL;CvCapture *cam = NULL;Mat Image;int GaussianBlurValue = 3;Mat dstImage ;static void on_GaussianBlur(int, void *);//-------信号函数------------void process(int ){ cvReleaseCapture(&cam);//释放CvCapture结构 exit(0);}int main(){ char SaveName[LEN]; int pictureNumber = 1; signal(SIGINT , process);//关闭信号(此处的SIGINT 为中断信号,即是键盘上的Ctrl + c) namedWindow("视频窗口"); while(1) { //----------图片采样------------- cam = cvCreateCameraCapture(0);//初始化从摄像头中获取视频 camFrame = cvQueryFrame(cam);//从摄像头或者文件中抓取并返回一帧 Image = Mat(camFrame);//图片转换 //-----------高斯滤波------------- dstImage = Image.clone(); namedWindow("GaussianBlur"); createTrackbar("Kernal Value:","GaussianBlur",&GaussianBlurValue,50,on_GaussianBlur); on_GaussianBlur(GaussianBlurValue,0); waitKey(5);//时间等待 //当按下键盘上的q键时,截取一张图片 if(waitKey(2) == 'q') { sprintf(SaveName , "%5d.jpg" ,pictureNumber++);//设置图片的序号,名称 imwrite(SaveName , dstImage);//保存图片 } imshow("视频窗口", Image); //显示图片 } return 0;}//------高斯滤波轨迹条回调函数------------static void on_GaussianBlur(int, void *){ GaussianBlur(Image,dstImage,Size(GaussianBlurValue*2+1,GaussianBlurValue*2+1),0,0); imshow("GaussianBlur", dstImage);}
这个就是我用OPENCV打开摄像头的程序。其实相比较QT上的源码采集,opencv上的代码更加容易理解。当然有一定缺陷,就是不能设置按键,有的时候最好是两者结合。
在上面的代码中中,我加入了高斯滤波,各位可以自己玩玩,就我感觉貌似没多大用途。
整个程序下来,其实是比较简单的,只有一个简单的主函数和一个信号处理函数以及一个轨迹条回调函数,一般接触过一点opencv的人都懂的。
采集效果:
这个是加入了高斯滤波的,设置滤波值为2
下面这个是不经过滤波的:
嗯。。。是不是明显感觉一点不一样呢?
自己动手做做吧~
0 0
- opencv下摄像头的采集和保存
- opencv打开摄像头采集和保存
- Qt环境下利用OpenCV采集摄像头图像并保存
- opencv采集视频/摄像头数据并保存
- Linux下基于OpenCV的摄像头数据采集与传输
- 怎样用GStreamer实现摄像头的采集和保存
- 【视频开发】用GStreamer实现摄像头的采集和保存
- Qt5.3里使用OpenCV库采集摄像头图像保存为图片和视频
- Python+OpenCV采集本地摄像头的视频
- 【OpenCV】摄像头顺序采集
- OpenCV摄像头保存视频和图像
- Win10下VS2015配置DirectShow+OpenCV并且多摄像头的采集
- win7下VS2012配置DirectShow+Opencv并且多摄像头采集
- Gstreamer实现摄像头的远程采集,udp传输,本地显示和保存为AVI文件 接收保存显示端
- Gstreamer实现摄像头的远程采集,udp传输,本地显示和保存为AVI文件 接收保存显示端
- OpenCV摄像头视频数据采集与RTSP和RTMP直播
- opencv对电脑摄像头采集和边缘检测
- opencv摄像头设备采集问题
- jquery ui dialog autofocus 去掉默认第一个元素获取焦点
- Android上玩玩Hook:Cydia Substrate实战
- UITableView
- IOS-4-面试题1:黑马程序员IOS面试题大全
- 动画知识点汇总
- opencv下摄像头的采集和保存
- UI06_UIScrollView
- 99% 的人中枪:过度分析
- UITableView省市区数组
- 3.2Library string Type
- hdoj1561The more, The Better【树形dp+01背包】
- 设计模式之-----命令模式
- UITableView
- LeetCode(151) Reverse Words in a String