封装的摄像头类

这是一个封装了MV-750, MV-E8000, MV-1300三种采集卡摄像头的C++类,提供载入、打开、关闭和拍照功能。类中包含初始化方法、设备信息获取和回调函数。代码适配北京维视的采集卡和摄像头。" 107143678,9075458,深度学习中的RNN文本向量化,"['深度学习', '自然语言处理', 'RNN', '特征工程']
摘要由CSDN通过智能技术生成
/*
这个类目前封装了三种采集卡的摄像头:两个模拟摄像头采集卡MV-750,MV-E8000;个数字摄像头采集卡MV-1300。
与一个学长共同完成,是完成的第一个感觉很满意的类,今天整理了一下发出来。
对外接口:载入,打开,关闭,拍照。
希望给对学习类封装的同学有点帮助。
采集卡、摄像头是北京维视的。
                          by l0g1n
CameraV1.h
*/
#pragma once

#include"stdafx.h"
#include <string>
using namespace std;
#include "HVDAILT.h"
#include "Raw2Rgb.h"
#include "HVDef.h"
#include "HVUtil.h"
#include "DVRSDK.H"
#include "DSStream.h"
#pragma comment(lib,"hvdailt.lib")
#pragma comment(lib,"raw2rgb.lib")
#pragma comment(lib,"HVUtil.lib")
#pragma comment(lib,"DVRSDK.lib")
#pragma comment(lib,"DSStream.lib")
class Camera
{
public:
	Camera():m_pWindow(NULL),m_image_buffer(NULL),m_nCameraID(-1), m_nWindowID(0)
	{}
	~Camera();
public:
	//传入参数,窗口显示所在类指针、窗口ID、摄像头通道号、摄像头名称
	void Attach(CWnd* pWnd,int nWindowID,int m_CameraID,string CameraName);
	bool open();
	void close();
	bool capture(char* s_pic_name);
	bool capture(string s_pic_name);
	bool capture(CString s_pic_name);
protected:
	CWnd* m_pWindow;
	char* m_image_buffer;
	unsigned m_nWindowID;
	int m_nCameraID;
protected:
	void InitCamera(string& CameraName);
public:
	static int CALLBACK SnapThreadCallback(HV_SNAP_INFO *pInfo);  ///English:    ///Chinese: 回调函数声明
	afx_msg LRESULT OnSnapChange(WPARAM wParam, LPARAM lParam);
	void HVGetDeviceInfo_Resolution();
	HV_BAYER_LAYOUT HVGetDeviceInfo_Bayer_Layout();
	void InitMV1300();
	void InitMV750();
	void InitMVE8000();
	bool openMV1300();
	bool openMV750();
	bool openMVE8000();
	void closeMV1300();
	void closeMV750();
	void closeMVE8000();
	bool captureMV750(char* s_pic_name);
	bool captureMV1300(char* s_pic_name);
	bool captureMVE8000(char* s_pic_name);
	
private:
	BITMAPINFO	*m_pBmpInfo;       ///English:    ///Chinese: BITMAPINFO 结构指针,显示图像时使用
	BYTE		*m_pImageBuffer;   ///English:    ///Chinese: Bayer转换后缓冲区
	BYTE		*m_pRawBuffer;     ///English:    ///Chinese: 采集图像原始数据缓冲区
	char		m_chBmpBuf[2048];  ///English:    ///Chinese: BIMTAPINFO 存储缓冲区,m_pBmpInfo即指向此缓冲区
	int m_nMaxWid;  ///English:    ///Chinese: 分辨率最大宽度
	int m_nMaxHei;  ///English:    ///Chinese: 分辨率最大高度
	/*///English:    ///Chinese: 颜色查找表*/
	BYTE		m_pLutR[256];
	BYTE		m_pLutG[256];
	BYTE		m_pLutB[256];
	HV_BAYER_LAYOUT  m_BayerType;
	HHV	      m_hhv;     ///English:    ///Chinese: 数字摄像机句柄
	HVSTATUS  status;    ///English:    ///Chinese: 设备状态
	string m_sCameraName;
};
//CameraV1.cpp
#pragma once
#include "stdafx.h"
#include "CameraV1.h"
const HV_BAYER_CONVERT_TYPE ConvertType = BAYER2RGB_NEIGHBOUR;    ///English:    ///Chinese: Raw2RGB算法
Camera::~Camera()
{
}
void Camera::InitCamera(string& CameraName)
{
	if(CameraName
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值