在liunx系统下,如何用opencv4调用摄像头显示画面,并在按下p键后将当前画面储存到指定的/root/20204367yyh路径下并根据保存顺序从photo1开始进行命名,直到按q键后关闭摄像头窗口。请进行程序编写并给出makefile文件并说明如何使用
时间: 2023-05-29 07:02:14 浏览: 106
程序编写:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
VideoCapture cap(0);
if (!cap.isOpened())
{
cout << "Failed to open camera!" << endl;
return -1;
}
namedWindow("Camera", WINDOW_NORMAL);
int count = 0;
while (waitKey(1) != 'q')
{
Mat frame;
cap >> frame;
imshow("Camera", frame);
if (waitKey(30) == 'p')
{
string path = "/root/20204367yyh/photo" + to_string(++count) + ".jpg";
imwrite(path, frame);
}
}
cap.release();
destroyAllWindows();
return 0;
}
```
Makefile文件:
```
CXXFLAGS = `pkg-config --cflags opencv4`
LIBS = `pkg-config --libs opencv4`
all : main
main : main.o
g++ $^ $(LIBS) -o $@
main.o : main.cpp
g++ -c $(CXXFLAGS) $< -o $@
clean :
rm -rf *.o main
```
使用步骤:
1. 在终端进入代码所在目录,输入 make 命令进行编译生成可执行文件。
2. 在终端运行可执行文件,即可打开摄像头窗口。
3. 在摄像头画面显示的窗口中,按下 'p' 键即可将当前画面储存在 /root/20204367yyh 路径下,并根据保存顺序从 photo1 开始进行命名。
4. 在摄像头画面显示的窗口中,按下 'q' 键可关闭摄像头窗口。
阅读全文