Ubuntu上使用opencv | 您所在的位置:网站首页 › 电脑外接摄像头测试不到画面 › Ubuntu上使用opencv |
文章目录
一、Ubuntu上安装opencv二、一个打开摄像头显示处理视频的程序三、打开摄像头采集图像并保存(改进)四、小结五、参考资料
本文章使用的系统时Ubuntu 18.04 desktop 一、Ubuntu上安装opencv安装及下载参考此链接,我就不详细说明 https://blog.csdn.net/qq_43279579/article/details/109231383 二、一个打开摄像头显示处理视频的程序 代码 #include using namespace cv; using namespace std; int main() { VideoCapture capture(0); while (1) { Mat frame; capture >> frame; imshow("读取视频帧", frame); waitKey(30); } system("pause"); return 0; } 编译g++ test.cpp -o test `pkg-config --cflags --libs opencv` 注意:此处用的是反引号
lsusb 查看usb设备列表 ls /dev/video* 查看摄像头驱动安装 sudo apt-get install cheese 如果已经安装,这步可以省略 cheese 打开摄像头
运行效果 将代码中的VideoCapture capture(0);修改为VideoCapture capture("/home/ubuntu/video/test.mp4") 即将0改为需要播放的视频名称以及它所存放的路径 ②在while循环中,Mat是一个什么数据结构? 为什么一定要加一句waitKey延时代码,删除它行不行? Mat是一个矩阵,每个图像都是由无数的点构成的,即Mat是一个图像矩阵。 waitKey()函数的功能是不断刷新图像,如果没有这个就无法实现画面的实时显示,即看不到画面的变化。 ③此代码会在while循环中一直运行,你如果试图用鼠标关闭图像显示窗口,会发现始终关不掉。需要用键盘Ctrl+C 强制中断程序,非常不友好。如何改进。 增加一个判断语句,来进行关闭 三、打开摄像头采集图像并保存(改进) 代码 /********************************************************************* 打开电脑摄像头,空格控制视频录制,ESC退出并保存视频RecordVideo.avi *********************************************************************/ #include #include #include #include using namespace cv; using namespace std; void main() { //打开电脑摄像头 VideoCapture cap(0); if (!cap.isOpened()) { cout startOrStop = 1 - startOrStop; if (startOrStop == 0) { flag = 1; } } if (key == 27)//按下ESC退出整个程序,保存视频文件到磁盘 { break; } if (startOrStop == 0 && flag==1) { writer cout |
CopyRight 2018-2019 实验室设备网 版权所有 |