手写VO的准备工作,调用UAB或者本地相机获取视频图像,读取并保存视频。
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap1(-1);
bool stop(false);
Mat frame1;
namedWindow("cam1", CV_WINDOW_AUTOSIZE);
if (cap1.isOpened() )
{
cout << "*** ***" << endl;
cout << "摄像头已启动!" << endl;
}
else
{
cout << "*** ***" << endl;
cout << "警告:请检查摄像头是否安装好!" << endl;
cout << "程序结束!" << endl << "*** ***" << endl;
return -1;
}
cap1.set(CV_CAP_PROP_FRAME_WIDTH, 640);
cap1.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
//cap2.set(CV_CAP_PROP_FRAME_WIDTH, 640);
//cap2.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
cap1.set(CV_CAP_PROP_FOCUS, 0);
while (!stop)
{
if ( cap1.read(frame1) )
{
//彩色帧转灰度
cvtColor(frame1, frame1, CV_RGB2GRAY);
imshow("cam1", frame1);
imwrite("frame1.jpg", frame1);
if (waitKey(1) == 27)//按ESC键
{
stop = true;
cout << "程序结束!" << endl;
cout << "*** ***" << endl;
}
}
}
return 0;
}
保存退出。 编译链接生成可执行文件。
g++ test.cpp -o test -I /usr/local/include/opencv -I /usr/local/include/opencv2 -L /usr/local/lib/*.so