使用c语言在Linux系统中,使用opencv调用摄像头显示图像,在按下p键后将当前画面保存到路径/
时间: 2023-05-28 20:05:31 浏览: 153
home/user/pictures/中。
代码如下:
```
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap(0); //打开默认摄像头
if (!cap.isOpened()) //判断摄像头是否成功打开
{
cerr << "Error: cannot open camera." << endl;
return -1;
}
namedWindow("Camera", WINDOW_NORMAL); //创建窗口
string save_path = "/home/user/pictures/"; //保存路径
while (true)
{
Mat frame;
cap >> frame; //读取摄像头画面
imshow("Camera", frame); //显示画面
int key = waitKey(30); //等待按键
if (key == 'p') //按下p键保存当前画面
{
string filename = save_path + "capture.jpg";
imwrite(filename, frame);
cout << "Saved image to " << filename << endl;
}
else if (key == 27) //按下ESC键退出程序
{
break;
}
}
cap.release(); //释放摄像头
destroyAllWindows(); //关闭窗口
return 0;
}
```
在Linux系统中,可以使用以下命令编译并运行程序:
```
g++ -o camera camera.cpp `pkg-config opencv --cflags --libs`
./camera
```
其中,`pkg-config opencv --cflags --libs`指定了opencv库的路径和编译选项。运行程序后,按下p键即可保存当前画面到指定路径。按下ESC键退出程序。
阅读全文