opencv打开相机获取图像并保存
生活随笔
收集整理的這篇文章主要介紹了
opencv打开相机获取图像并保存
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include<opencv2/opencv.hpp>
#include<iostream>using namespace cv;
using namespace std;Mat input_Image, Left_Image, Right_Image; //Mat矩陣//寫(xiě)入圖像數(shù)據(jù)
void save( int times )
{string a = "0";string leftImage = "left0.jpg"; //設(shè)置照片的名字格式string rightImage = "right0.jpg";//設(shè)置照片的名字格式int re_length = 1;a = to_string(times); //將int型數(shù)據(jù)轉(zhuǎn)換為string型//將字符串第4個(gè)位置(因?yàn)槭菑?開(kāi)始算的)的1位字符替換為a;比如 a="1",則替換后為"left1.jpg"leftImage.replace(4, 1, a);//將字符串第5個(gè)位置(因?yàn)槭菑?開(kāi)始算的)的1位字符替換為a;比如a="1",則替換后為"right1.jpg"rightImage.replace(5, 1, a);imwrite(leftImage, Left_Image); //將Left_Image(Mat型)中的圖像數(shù)據(jù)寫(xiě)入到leftImage(string)中imwrite(rightImage, Right_Image); //將Right_Image(Mat型)中的圖像數(shù)據(jù)寫(xiě)入到rightImage(string)中}//獲取圖像數(shù)據(jù)
void setCam(int weight, int height, int num)
{int state = 0;string Error;VideoCapture cam(0);int times = 1;/*設(shè)置緩存區(qū)大小*/cam.set(CV_CAP_PROP_FRAME_WIDTH, weight);cam.set(CV_CAP_PROP_FRAME_HEIGHT, height);while (! cam.isOpened() ) //報(bào)錯(cuò){Error = "camre is not open";return;}while (true){cam >> input_Image; //將獲取的影像數(shù)據(jù)傳入input_Image矩陣中//分為左右兩個(gè)窗口顯示獲取的圖像Left_Image = input_Image(Rect( 0, 0, input_Image.size().width / 2, input_Image.size().height));Right_Image = input_Image(Rect( input_Image.size().width / 2, 0, input_Image.size().width / 2, input_Image.size().height));//顯示圖像imshow("LeftImage", Left_Image);imshow("ReightImage", Right_Image);save( times );//保存圖像數(shù)據(jù)times += 1;//在等待的30毫秒期間如果按下Esc鍵或者循環(huán)保存圖片已經(jīng)有40張(左右各20張),則跳出循環(huán)if (27 == waitKey(30) || times > 20 )break;//waitKey(100)等待100毫秒waitKey(100);}}int main()
{int weight = 1280; //圖像捕捉窗口的寬度int height = 480; //圖像捕捉窗口高度setCam( weight, height, 20 );system("pause"); //程序停止不關(guān)閉控制臺(tái)窗口return 0;}
總結(jié)
以上是生活随笔為你收集整理的opencv打开相机获取图像并保存的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Unity中的数学基础——弧度与角度
- 下一篇: Android项目集成谷歌账户登录