微视相机调用相机

转载自:https://blog.csdn.net/hujiameihuxu/article/details/71518945

我的程序需要在原博主上面加个#pragma comment (lib, "MVC_API.lib")才能正常,在博主的基础上增加了视频保存功能

#include<Windows.h>//是的,这个相机就是这么依赖平台
#include"MVCAPI.h"
#include<opencv2\core\core.hpp>//opencv要先配置好了哦
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<iostream>
using namespace cv;

#pragma comment (lib, "MVC_API.lib")
int main()
{
	string video_name = "E:/video/video.avi";//保存视频位置
	VideoWriter writer;
	
	DWORD ulDeviceNumber= MVC_GetDeviceNumber();
	MVCGE_DEVLISTEX device0Info;
	MVC_GetDeviceInfoEx(0,&device0Info);
	
	int m_iImgWidth = 1600;
	int m_iImgHeight =1200;
	MVCFRAMEINFO cam0frameInfo;

	memset(&cam0frameInfo,0,sizeof(MVCFRAMEINFO));//清空cam0frameInfo里面的内容,好存放数据

	MVC_SetNetPacketSize(0,1440);//不开启巨帧;在opendevice之前调用.重要!!!
	
	if(MVC_OpenDevice(0)==CY_RESULT_OK)
		std::cout<<"打开cam0成功";

	MVC_SetParameter(0,MVCADJ_SHUTTERTYPE,1); //设置采集模式为连续采集模式(面阵相机)
	MVC_SetParameter(0,MVCADJ_BITMODE, 2); //设置为8bit 采集
	MVC_SetParameter(0,MVCADJ_WIDTH,m_iImgWidth); //采集的宽度为1600
	MVC_SetParameter(0,MVCADJ_HEIGHT, m_iImgHeight); //采集的高度为1200
	MVC_SetParameter(0,MVCADJ_FPSMAXENABLE, 40); //采集的帧率为40

	std::cout<<"try to get a image data:"<<std::endl;
	writer = VideoWriter ( video_name, CV_FOURCC ( 'X', 'V', 'I', 'D' ), 50, Size ( m_iImgWidth, m_iImgHeight ), true );

	
	while ( 1){
		
	   MVC_EnableCapture(0);//打开采集
		MVC_GetRgbData3(0,&cam0frameInfo);//获取相机数据
		
		cv::Mat img(m_iImgHeight,m_iImgWidth,CV_8UC3, cam0frameInfo.lBufPtr);
		writer.write ( img );//往视频中写数据
		cv::imshow("1",img);
		cv::waitKey(1);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值