windows和ubuntu调用网络摄像头(Rtsp URL)胎教级

本文详细介绍了如何在Windows和Ubuntu系统上通过Python调用网络摄像头,包括获取摄像头IP地址、设置网络连接,以及在不同情况下(如断开网络后再连接)的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:本篇文章介绍的全部都是在windows和ubuntu上面如何用python调用网络摄像头以及切换回插上网线联网

windows调用摄像头

不管我们在windows上面还是ubuntu上面调用网络摄像头都需要先知道它的ip地址,如果有不知道的小伙伴可以查看一下摄像头的说明书或者摄像头背面。

比如我的

192.168.1.108

这是我的初始ip,知道了ip之后,我们去打开控制面板

找到网络和internet

进入网络共享中心

点击我们插入的网线那一栏的以太网

点击属性

然后点击internet版本协议4

点击使用下面的ip地址,输入我们摄像头同一地址段的地址就好了。比如我的摄像头IP地址是更改过的192.168.254.5,那么我们这里就填同一个地址段就好了,简单来说就是前三个保持一样就行

之后就一路确定保存我们的更改就好了,然后我们出来后在浏览器中输入我们摄像头的ip地址,进入摄像头界面,如果你的摄像头登录需要密码就会跟我出现差不多的界面

输入密码进行登录,然后我们找到配置界面,以我的摄像头为例,找到设备配置——>网络服务——>RTSP

此时我们要记住这个端口号,调用的时候用的上!

此时我们新建文件,把代码粘贴上去,填好我们自己的参数并运行代码就可以了

import cv2
from ultralytics import YOLO
ip_address = '192.168.254.5' #这是我们摄像头的ip地址
port = 554 #这是我们刚刚查看的端口号
username = '' #这里输入你的用户名,如果你的摄像头打开需要登录的话
password = '' #这里输入登录密码
model = 'D:\\VScode_project\\v8_ocr_sort_diang\\ultralytics-main\\weights\\yolov8n.pt'
rtsp_url = f'rtsp://{username}:{password}@{ip_address}:{port}/live'
cap = cv2.VideoCapture(rtsp_url)
if not cap.isOpened():
    print("无法连接到摄像头!")
    exit()
while True:
    ret, frame = cap.read()
    frame = cv2.resize(frame, (0, 0), fx=0.5, fy=0.5)
    cv2.imshow('Camera', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

这是效果图

windows断开网络恢复网络连接 

在之后想用网线联网的时候就继续进Internet协议版本4中改成自动获得IP地址就好了

Ubuntu调用网络摄像头

好的,此时我们已经来到了ubuntu系统。我们还是先知道摄像头的ip地址,然后我们点击桌面右上角的网络那里

点击有线连接。点击有线设置

点击我们连接网线的小齿轮或上方加号,点击上方加号比较好一些,来回切换网络就可以了,比如你要用网了不用摄像头了,那么直接切换就好了。

然后我们点击IPv4,选择手动,输入我们的地址,子网掩玛,网关以及DNS,(往下滑就有DNS),这里没拍全

输入之后我们出来打开终端,输入

arp -a

这时候我们可以看到出现一些提示,这个时候我们可以看到这句

? (192.168.254.5) 位于 00:12:33:15:46:1b [ether] 在 enp7s0f1

 这就说明我们可以调用这个网络摄像头了,注意: 00:12:33:15:46:1b这几个代表的是你的MAC地址,所以不用非跟我一样

接着我们继续运行之前的那段代码就可以看到画面了!效果如图:

ubuntu断开摄像头恢复网络

刚刚使用加号的同学直接切换网络就好,使用小齿轮的使用以下方法恢复网络。

我所知道的一共两种方法:

一:点击有线连接->有线设置

然后找到我们现在使用的网线,点击右上角的小齿轮,点击移除连接配置,然后等待几秒钟就好了

二:首先我们先回到IPv4中,(怎么进刚刚已经在上面连接网络摄像头时说过),删除DNS,然后点击自动(DHCP),点击应用。

然后我们进入终端输入下面这行命令停止Network Manager服务(Network Manager是管理网络连接的工具)

sudo service network-manager stop

 接着我们输入下面这行命令删除Network Manager的状态文件

sudo rm /var/lib/NetworkManager/NetworkManager.state

然后继续输入下面这行命令启动Network Manager服务

sudo service network-manager start

基本就说这么多,如果有哪里说的不全,还请大佬们多指点

### 如何在Ubuntu 18.04上设置使用摄像头 #### 配置ROS环境中的USB摄像头 对于希望利用ROS框架来操作摄像头的用户来说,可以通过特定的launch文件启动usb_cam节点。这通常涉及到创建或编辑一个launch文件用于指定参数并启动必要的节点。具体命令是在一个新的终端窗口执行`roslaunch usb_cam usb_cam-test.launch`[^1]。 #### VMware虚拟机环境下Ubuntu系统的摄像头访问 当处于VMware环境中时,确保宿主机Windows上的摄像头功能正常是非常重要的前提条件之一。通过Win10自带的应用程序验证硬件设备能否被正确识别以及工作状况良好之后,才能更好地继续后续Linux端的操作准备过程[^2]。 #### 利用OpenCV库开发C++应用程序读取视频流 针对开发者而言,如果计划基于计算机视觉算法处理来自摄像装置的数据,则可以考虑采用开源软件包OpenCV完成这项任务。构建项目时需链接对应的头文件路径及静态/动态链接库,例如给出了一条简单的g++编译指令样例:`g++ -o test_1 test_1.cpp `pkg-config --cflags --libs opencv``[^3]。 下面是一个简单例子展示怎样编写一段能够获取实时画面帧的小型程序: ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main(int, char**) { VideoCapture cap(0); // 打开默认的第一个摄像头 if (!cap.isOpened()) { printf("Cannot open camera\n"); return -1; } Mat frame; namedWindow("Camera", WINDOW_AUTOSIZE); while (true) { cap >> frame; // 获取新的一帧图像数据 imshow("Camera", frame); if (waitKey(30) >= 0) break; } destroyAllWindows(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值