ubuntu调用外接摄像头

2023-12-18 11:50
文章标签 ubuntu 摄像头 调用 外接

本文主要是介绍ubuntu调用外接摄像头,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、ubuntu20.04调用外接摄像头(如果是Ubuntu18.04用melodic放在第二行)

1.检查是否连接摄像头

ls /dev/video*

输出/dev/video0  /dev/video1  /dev/video2  /dev/video3 ...表示可以

2.命令行下载软件调用USB摄像头

2.1使用应用程序camorama

输入命令:

sudo apt-get install camorama

安装完成后,在终端中输入命令:

camorama

即可显示出视频信息;

(如果指定打开video2,输入命令:camorama -d /dev/video2)

2.2 使用应用程序茄子(cheese)

输入命令:

sudo apt-get install cheese

(如果指定打开video1,输入命令:cheese -d /dev/video1)

装好后,用命令:

cheese

cheese的页面如下:

3.在yolov5上调用外接摄像头

通过第二步一直调试调用video0-3,你应该知道哪个video是外接摄像头了

那只需在调用yolov5的detect.py时给定--source='2'这个参数。其中要注意的是这个'2'是一个字符串,且这个2代表的就是外接摄像头的序号。

最终调用yolov5的检测函数的命令行应该是这样的:

python detect.py --weights runs/train/exp/weights/best.pt --save-txt --source='2'

其中的--weights和--save-txt不必与文中相同

二、使用ROS的ros-noetic-usb-cam调用相机

1 ros-noetic-usb-cam使ROS的官方示例程序之一,用于启动摄像头,获取图像,并显示在屏幕上。这里记录ros-noetic-usb-cam的安装、接口调试和使用方法。

ros-noetic-usb-cam的安装流程
ros-noetic-usb-cam的安装包括两种,第一种是使用Ubuntu的apt-get安装:

(如果是Ubuntu18.04用melodic放在第二行)

sudo apt-get install ros-noetic-usb-cam
sudo apt-get install ros-melodic-usb-cam

其中,"ros-noetic-usb-cam"中的"noetic"与用户当前的Ubuntu20.04版本相匹配

ros-noetic-usb-cam的接口调试方法
考虑ros-noetic-usb-cam默认调用的摄像机接口为/dev/video0,与RealSense的接口编号不一致,若直接运行ros-noetic-usb-cam,将无法启动RealSense的摄像机。接口的修改方法可参考(https://blog.csdn.net/benchuspx/article/details/108765979):

第一步,进入ros-noetic-usb-cam的源代码位置:

roscd usb_cam



第二步,打开文件

vim launch/usb_cam-test.launch



第三步,调整接口参数

<param name="video_device" value="/dev/video2" />  

其中,接口号为video2,若运行,则调用RealSense的黑白相机。也可以调整为其它,若运行,则调用RGB相机。

ros-noetic-usb-cam的运行方法
打开终端,运行命令如下,

roslaunch usb_cam usb_cam-test.launch 

2 使用Python和OpenCV调用相机
OpenCV是常用的计算机视觉库和机器学习库,本工作使用OpenCV打开和处理RealSense的相机数据,编程语言选择Python 启动相机的代码如下,

import cv2
import numpycap = cv2.VideoCapture(4) #调整参数实现读取视频或调用摄像头while cap.isOpened():ret, frame = cap.read()cv2.imshow("cap", frame)if cv2.waitKey(1) & 0xff == ord('q'):breakcap.release()
cv2.destroyAllWindows()


3 在ROS下使用RVIZ调用Realsense相机
在ROS下启动RealSense

工作中准备两个终端,分别执行ROS的RealSense和RVIZ。

其中,第一个终端运行RealSense 命令如下:

roslaunch realsense2_camera rs_camera.launch

第二个终端运行RVIZ命令如下:

rviz

接着在RVIZ界面中,增加RGB相机和深度相机


参考文章:https://blog.csdn.net/qq_32454557/article/details/112692201

参考文章:https://blog.csdn.net/weixin_48250354/article/details/109309042

这篇关于ubuntu调用外接摄像头的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/508284

相关文章

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

python调用dubbo接口的实现步骤

《python调用dubbo接口的实现步骤》本文主要介绍了python调用dubbo接口的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录 ​​其他实现方式与注意事项​​ ​​高级技巧与集成​​用 python 提供 Dubbo 接口

C# FTP调用的实现示例

《C#FTP调用的实现示例》本文介绍了.NET平台实现FTP/SFTP操作的多种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 .NET 自带 FtpWebRequest 实现 FTP 操作1.1 文件上传1.2

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静