使用opencv设置分辨率并保存在本地

#include <iostream>
#include <cstdio>
#include <opencv2/opencv.hpp>
#include <unistd.h>
using namespace std;
using namespace cv;


int main()
{
	VideoCapture cap; //定义视频对象 
	cap.open(0); //0为设备的ID号 ,usb摄像头为1(0为默认的,像笔记本本身的就是0。如果只有一个usb,那usb设备号也是0)
	Mat frame; 
	cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);//设置分辨率
	cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
	cap >> frame; 
	if(frame.data) 
	{ 
		cout << "!0"<<endl;        //拍到了图片
		imshow("frame",frame);     //窗口名“frame",显示frame
		waitKey(3000);//等待按下函数:参数如果写负数或者0。当显示图片后,按下任意键后程序退出。如果参数写为3000就是3秒后程序自动退出
	} 
	//waitKey(30); //0.03s获取一帧,不是很明白,注释掉暂时没发现影响

	imwrite("./1.jpg",frame);        //保存在当前目录

	/*显示出来
	   int c ;
	   Mat img1 = imread("2.jpg");
	   namedWindow("图像显示");
	   while(1)
	   {
	   imshow("图像显示",img1);
	   c = waitKey(0);
	   imwrite("33.jpg",img1);
	   if(c==27 || char(c)=='q' || char(c) == 'Q')
	   break;
	   }
	 */
	return 0;
}

猜你喜欢

转载自blog.csdn.net/yuhuqiao/article/details/84242003