1.先上代码
//打开摄像头拍取20张图片
#include<iostream>
#include<opencv2/opencv.hpp>
#include<boost/format.hpp>
using namespace std;
using namespace cv;
int main(int argc,char** argv)
{
VideoCapture cam(0);
if(!cam.isOpened())
{
cerr<<"Camera is not opened."<<endl;
return 1;
}
Mat frame;
int i=1;
boost::format fmt("./Image/src_%d.jpg");
while(1)
{
cam>>frame;
imshow("camera",frame);
char key=waitKey(1);
if(key==32 &&i<=20) //按下空格键并且i<=20
{
cout<<"写入第"<<i<<"张图片..."<<endl;
imwrite((fmt%i).str(),frame);
i++;
}
if(key==27) //按下ESC键
break;
}
waitKey(0);
}
2.几个参数说明
capture.get(CAP_PROP_FRAME_WIDTH) //得到图像宽度
capture.get(CAP_PROP_FRAME_HEIGHT)
capture.set(CAP_PROP_FRAME_WIDTH,1920) //设置图像宽度
capture.set(CAP_PROP_FRAME_HEIGHT,1080)
capture.get(CAP_PROP_FPS) //得到相机帧率