这里使用的是海康威视的MV-CA020-20GC摄像头,软件使用的是VS2017与opencv3.1.1 (已经配置完成)。
调取摄像头画面需要先按照海康威视的说明书进行设置,设置完成后,安装海康威视的客户端MVS。
客户端安装完成后需要在VS中进行配置,具体配置方法优快云里有很多,这里就不详细说明了。
配置完成后运行以下代码就可以调用摄像头的画面:
#include "MvCameraControl.h"
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
#define MAX_BUF_SIZE (1920*1200*3)
void main()
{
int nRet = -1;
void* m_handle = NULL;
//枚举子网内指定的传输协议对应的所有设备
unsigned int nTLayerType = MV_GIGE_DEVICE;
MV_CC_DEVICE_INFO_LIST m_stDevList = { 0 };
nRet = MV_CC_EnumDevices(nTLayerType, &m_stDevList);
if (nRet != 0)
{
printf("error: EnumDevices fail [%x]\n", nRet);
}
if (m_stDevList.nDeviceNum == 0)
{
printf("no camera found!\n");
}
//选择查找到的第一台在线设备,创建设备句柄
int nDeviceIndex = 0;
MV_CC_DEVICE_INFO m_stDevInfo = { 0 };
memcpy(&m_stDevInfo, m_stDevList.pDeviceInfo[nDeviceIndex], sizeof(MV_CC_DEVICE_INFO));
nRet = MV_CC_CreateHandle(&m_handle, &m_stDevI