【Opencv学习】摄像头采集、录像、截图小工具

简介: 作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ /* * ===================================================================================== * * Filename: videocapture.

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

/*
* =====================================================================================
*
* Filename: videocapture.cpp
*
* Description: A Program of Capture the video Camrea 本程序可以进行摄像头采集、录像(按键 r)和截图(鼠标左键)
*
* Version: 1.0
* Created: 02/02/2009 09:48:27 AM
* Revision: none
* Compiler: gcc
*
* Author: Futuredaemon (BUPT), gnuhpc@gmail.com
* Company: BUPT_UNITED
*
* =====================================================================================
*/

#include "cv.h"
#include "highgui.h"
#include 
#include 
#include 

IplImage *frame=0;

void mouseHandler(int event,int x,int y,int flags,void *param);

int main(int argc , char **argv)
{
CvCapture *capture = 0;

int flag= 1;

int iscolor=1;
int fps=15;
int frameW=320;
int frameH=240;
int press=0;
CvVideoWriter *writer=cvCreateVideoWriter("out.avi",CV_FOURCC('D','I','V','X'),
fps,cvSize(frameW,frameH),iscolor);

if (argc==1|| (argc==2 && strlen(argv[1])==1 && isdigit(argv[1][0])))
{
capture = cvCaptureFromCAM(-1);
}
else if(argc==2)
{
capture = cvCaptureFromAVI(argv[1]);
}

if (!capture)
{
fprintf(stderr,"Could not initialize capturing.../n");
return -1;
}

cvNamedWindow("main",0);

cvSetMouseCallback("main",mouseHandler,NULL);
for (;;)
{

frame = cvQueryFrame(capture);
if (!frame)
{
break;
}

if( flag==0 )
{
cvWriteFrame(writer,frame);
}

cvShowImage("main",frame);

if ((press=cvWaitKey(20))=='r')
{
if( flag==1 )
{
printf("Starting Record the Video!/n");
flag = 0;
} else
{
printf("Stop the recording!/n");
flag = 1;
}
}
else if(press==27)
{
break;
}

}

cvReleaseCapture(&capture);
cvDestroyWindow("main");
return 0;
}

void mouseHandler(int event,int x,int y,int flags,void *param)
{
time_t curtime=time(NULL);
char *date=ctime(&curtime);

switch ( event )
{
case CV_EVENT_LBUTTONDOWN :
printf("Get a picrure named %s/n",date+11);
sprintf(date,"%s.jpg",date+11);
cvSaveImage(date,frame);
break;
default :
break;
}
}

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/


               作者:gnuhpc
               出处:http://www.cnblogs.com/gnuhpc/
               除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

目录
相关文章
|
2月前
|
编解码 数据安全/隐私保护 计算机视觉
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
如何使用OpenCV进行同步和异步操作来打开海康摄像头,并提供了相关的代码示例。
103 1
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
|
2月前
|
计算机视觉
Opencv学习笔记(八):如何通过cv2读取视频和摄像头来进行人脸检测(jetson nano)
如何使用OpenCV库通过cv2模块读取视频和摄像头进行人脸检测,并提供了相应的代码示例。
106 1
|
2月前
|
编解码 计算机视觉 Python
Opencv学习笔记(九):通过CV2将摄像头视频流保存为视频文件
使用OpenCV库通过CV2将摄像头视频流保存为视频文件,包括定义视频编码格式、设置保存路径、通过write写入视频文件,并提供了相应的Python代码示例。
143 0
|
4月前
|
计算机视觉 索引
OpenCv实时设置摄像头参数/获得摄像头参数值的方法论
这篇文章提供了一个OpenCV的实例教程,展示了如何使用`createTrackbar()`函数实时设置和获取摄像头参数值,如饱和度、Gamma和亮度,并通过回调函数在程序中连续修改这些参数。
|
2月前
|
缓存 监控 计算机视觉
视频监控笔记(三):opencv结合ffmpeg获取rtsp摄像头相关信息
本文介绍了如何使用OpenCV结合FFmpeg获取RTSP摄像头信息,包括网络架构、视频监控系统组成、以及如何读取和显示网络摄像头视频流。
53 1
|
2月前
|
计算机视觉 Python
python利用pyqt5和opencv打开电脑摄像头并进行拍照
本项目使用Python的PyQt5和OpenCV库实现了一个简单的摄像头应用。用户可以通过界面按钮打开或关闭摄像头,并实时预览视频流。点击“拍照”按钮可以捕捉当前画面并保存为图片文件。该应用适用于简单的图像采集和处理任务。
135 0
python利用pyqt5和opencv打开电脑摄像头并进行拍照
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
OpenCV与AI深度学习之常用AI名词解释学习
AGI:Artificial General Intelligence (通用人工智能):是指具备与人类同等或超越人类的智能,能够表现出正常人类所具有的所有智能行为。又被称为强人工智能。
136 2
|
5月前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
|
5月前
|
计算机视觉 Python
opencv 处理图像去噪的几种方法学习
OpenCV 提供了多种图像去噪的方法,以下是一些常见的去噪技术以及相应的 Python 代码示例: 均值滤波:使用像素邻域的灰度均值代替该像素的值。
70 0
|
6月前
|
计算机视觉 索引 Python
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面