//实现从摄像头捕获图像。通过键盘的输入来控制捕获的结束。
//注意sprintf()函数的使用,不能有转义符号等一些不能作为文件命名的字符,否则再用imwrite()函数时会出现错误。这样就可以不用管图像有多少张了
//imwrite(const string&filename,InputArray image,const vector<int> ¶ms =vector<int>())
//这个函数主要注意第三个参数。如果没有的,会使用默认值
#include "opencv2\opencv.hpp"
#include "iostream"
#include "stdio.h"
#include "conio.h"
using namespace cv;
using namespace std;
int main()
{
char image_name[20];
int i = 0;
Mat frame;
int flag = 1;
vector<int> parament;
parament.push_back(IMWRITE_JPEG_QUALITY);
parament.push_back(97);
VideoCapture cp(0);
if (!cp.isOpened())
{
cout << "camera is not open" << endl;
return 0;
}
while (flag)
{
if (!_kbhit())
{
//cp.grab();
if (cp.grab())
{
cp.retrieve(frame);
sprintf(image_name, "%s%d%s", "tutuimage", ++i, ".jpg");//保存的图片名
cout << image_name << endl;
if (imwrite(image_name, frame,parament))
{
cout << "ture" << endl;
}
else
{
cout << "false" << endl;
return 0;
}
}
}
else
{
flag = 0;
}
}
return 0;
}
opencv学习---imwrite()和videocapture类的介绍
最新推荐文章于 2024-05-08 09:45:16 发布