基于VideoInput的摄像头操作类
来源:互联网 发布:淘宝里的金牌卖家 编辑:程序博客网 时间:2024/06/08 14:47
这段时间做毕设,项目与摄像头采集图像相关,记录于此备忘。
因为设备采用的是比较旧的USB视频采集卡,所以只能使用videoInput进行操作,于是写了一个Camera类。
Camera.h:
#pragma once#ifndef CAMERA_H#define CAMERA_H#include "stdafx.h"#include "videoInput.h"// 添加静态库#pragma comment(lib, "videoInput.lib")class Camera{private:videoInput* m_VI;int m_deviceID;int m_camera_height;int m_camera_width;public:Camera(){};Camera(int deviceID);~Camera(){};bool open();bool close();bool query_one_frame(IplImage** img);int get_height();int get_width();};#endif
#include "stdafx.h"#include "Camera.h"Camera::Camera(int deviceID){m_deviceID = deviceID;}// 打开摄像头bool Camera::open(){m_VI = new videoInput();m_VI->setupDevice(m_deviceID); // 启动设备m_VI->setFormat(m_deviceID, VI_SECAM_D);// 设置摄像头的格式m_camera_height = m_VI->getHeight(m_deviceID); // 获取图像高度m_camera_width = m_VI->getWidth(m_deviceID); // 获取图像宽度if(false == m_VI->isDeviceSetup(m_deviceID)){AfxMessageBox(_T("无法获取摄像头!"));return false;}return true;}// 获取一帧图像,出参为imgbool Camera::query_one_frame(IplImage** img){if(NULL == m_VI)return false;*img = cvCreateImage(cvSize(m_camera_width, m_camera_height),8,3);m_VI->getPixels(m_deviceID,(unsigned char*)(*img)->imageData,false,true);// 中值滤波cvSmooth(*img, *img, CV_MEDIAN);return true;}// 关闭摄像头bool Camera::close(){if(NULL == m_VI)return false;m_VI->stopDevice(m_deviceID);m_VI = NULL;return true;}// 获取图像高度int Camera::get_height(){return m_camera_height;}// 获取图像宽度int Camera::get_width(){return m_camera_width;}
videoInput下载戳这里。
转载注明出处。
0 0
- 基于VideoInput的摄像头操作类
- OpenCV实例:基于videoInput的视频录像机
- VideoInput库 + Opencv2.3.1 + 无线摄像头 + VC2010
- OpenCV+VideoInput 捕捉摄像头+人脸检测
- VideoInput库 + Opencv2.3.1 + 无线摄像头 + VC2010
- 使用Qt+OpenCV+VideoInput 显示摄像头图像
- MATLAB编程->MATLAB2014a videoinput读取摄像头
- OpenCV使用VideoInput库从摄像头捕获视频
- OpenCV使用VideoInput库从摄像头捕获视频
- 基于opencv的摄像头提取
- 利用OpenCV的VideoCapture类实现视频/摄像头读操作
- 关于Android摄像头操作设置的工具类
- 基于CH374的USB摄像头驱动设计
- 基于Silverlight的摄像头监控系统
- 基于MFC对话框的摄像头跟踪
- 基于mini2440的ov9650摄像头裸机测试
- 基于mini2440的ov9650摄像头裸机测试
- 基于UDP的摄像头图像显示软件设计
- 学习知识之多线程
- nginx 的信号控制
- applicationContext.xml文件中的异常: Attribute : name The name of the property, following JavaBean naming c
- 反汇编基本原理与x86指令构造
- 用maven创建基于wink的rest服务-传送文件(字符串和字节数组)(一)
- 基于VideoInput的摄像头操作类
- backbone实例todos分析
- Android之HttpClient的GET和POST区别
- wifidog 认证 php
- 上台阶、硬币问题的算法
- nginx学习笔记1
- 翻硬币
- 一种一天成为高手的另类Sketch up速成法
- nginx学习笔记2