Ubuntu系统下查看摄像头参数并基于OpenCV调用
创始人
2024-05-24 03:30:06
0

目录

1. 安装v4l-utils

2. 查找连接的摄像头列表

3. 查看各相机支持的分辨率、帧率、像素格式等参数

4. 注意事项

5. OpenCV(C++)调用摄像头代码


本博文描述了在Ubuntu系统下如何使用v4l-utils工具来查看所连接摄像头(包含USB摄像头及树莓派摄像头)信息,主要内容如下:
1. 获取摄像头列表;
2. 获取各摄像头支持的分辨率、帧率、像素格式;
3. 基于OpenCV抓取摄像头图像。

1. 安装v4l-utils

sudo apt-get install v4l-utils

如果有以下报错:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package v4l-utils is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another sourceE: Package 'v4l-utils' has no installation candidate

则先更新源,再安装即可。

sudo apt-get update

2. 查找连接的摄像头列表

ls /dev/video*

输出

/dev/video0  /dev/video1

v4l2-ctl --list-devices

输出

vi-output, imx219 7-0010 (platform:54080000.vi:0):/dev/video0USB Camera (usb-70090000.xusb-2.3):/dev/video1

3. 查看各相机支持的分辨率、帧率、像素格式等参数

v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMTIndex       : 0Type        : Video CapturePixel Format: 'RG10'Name        : 10-bit Bayer RGRG/GBGBSize: Discrete 3264x2464Interval: Discrete 0.048s (21.000 fps)Size: Discrete 3264x1848Interval: Discrete 0.036s (28.000 fps)Size: Discrete 1920x1080Interval: Discrete 0.033s (30.000 fps)Size: Discrete 1640x1232Interval: Discrete 0.033s (30.000 fps)Size: Discrete 1280x720Interval: Discrete 0.017s (60.000 fps)
v4l2-ctl -d /dev/video1 --list-formats-ext
ioctl: VIDIOC_ENUM_FMTIndex       : 0Type        : Video CapturePixel Format: 'MJPG' (compressed)Name        : Motion-JPEGSize: Discrete 1920x1080Interval: Discrete 0.033s (30.000 fps)Size: Discrete 1280x720Interval: Discrete 0.033s (30.000 fps)Size: Discrete 640x480Interval: Discrete 0.033s (30.000 fps)Index       : 1Type        : Video CapturePixel Format: 'YUYV'Name        : YUYV 4:2:2Size: Discrete 1920x1080Interval: Discrete 0.200s (5.000 fps)Size: Discrete 1280x720Interval: Discrete 0.100s (10.000 fps)Size: Discrete 640x480Interval: Discrete 0.033s (30.000 fps)

4. 注意事项

(1)如上所示的/dev/video1 USB摄像头支持 MJPG 和 YUYV 两种像素格式,每种格式支持多种分辨率及帧率。如果需要实时抓取1080p的图像,则需要采用MJPG格式,默认的YUYV格式不能满足实时抓取需求。

(2)另外,调用摄像头时传入的摄像头设备、图像帧宽、帧高、帧率,应与v4l2-ctl 打印的参数一致。调用代码如下。

5. OpenCV(C++)调用摄像头代码

#include 
#include int main()
{cv::VideoCapture capture;capture.open("/dev/video1", cv::CAP_V4L2);capture.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M','J','P','G'));capture.set(cv::CAP_PROP_FRAME_WIDTH, 1920);capture.set(cv::CAP_PROP_FRAME_HEIGHT, 1080);capture.set(cv::CAP_PROP_FPS, 30);cv::Mat frame;while (1){capture >> frame;if (!frame.empty()){cv::imshow("frame", frame);}if (cv::waitKey(1) == 27)break;}return 0;
}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...