OpenCV或yolov4使用IPCamera进行目标检测——真正的随时检测

IP camera

我们在手机的应用市场上搜索 IP camera就可以找到这个软件
在这里插入图片描述

Tips: 这款APP是有广告的注意不要乱点广告,略影响用户体验。
考虑开发一个更好的

网络环境

需要确定你的手机与电脑处在同一个局域网下,即他们连接同一个WIFI。

启动

在这里插入图片描述

点击运行IP摄像头APP , 点击下方的打开IP摄像头服务器 的选项。
在这里插入图片描述
点击确定

服务器开启之后,会提示你这个视频流服务器在局域网中的IP还有端口号。

在这里插入图片描述

打开网络摄像头

在浏览器中输入你的局域网地址

这时候会弹出让你输入账号和密码
账号密码分别为 admin admin

这时候就能够使用啦

在opencv中使用

核心代码

# 制定URL  http://用户名:密码@IP地址:端口号/
ip_camera_url = 'http://admin:admin@192.168.43.1:8081/'
# 创建一个VideoCapture
cap = cv2.VideoCapture(ip_camera_url)

只要在VdeioCapture中输入网络摄像头的url就可以使用了

完整代码:

# -*- coding: utf-8 -*- 
'''
读取手机摄像头的视频流

1. 手机与电脑链接同一个WIFI热点
2. 需要sudo权限:
sudo python  ipcam-cap.py
'''
import cv2
import time

ip_camera_url = 'http://admin:admin@192.168.2.237:8081/'
# 创建一个窗口
cv2.namedWindow('ip_camera', flags=cv2.WINDOW_NORMAL | cv2.WINDOW_FREERATIO)

cap = cv2.VideoCapture(ip_camera_url)

if not cap.isOpened():
    print('请检查IP地址还有端口号,或者查看IP摄像头是否开启,另外记得使用sudo权限运行脚本')

while cap.isOpened():
    ret, frame = cap.read()
    cv2.imshow('ip_camera', frame)


    if cv2.waitKey(1) == ord('q'):
        # 退出程序
        break

cv2.destroyWindow('ip_camera')
cap.release()

yolov4中也同理

darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg weights\yolov4.weights http://admin:admin@192.168.0.100:8081 -i 0 -thresh 0.25

设置缓存区的大小 !!!

有时候,如果你在OpenCV中做图像处理的时候,如果图像处理比较耗时,就导致存在VideoCapture缓存区的图像队列越积越多。 你就会发现延时好高啊,过了半天画面才更新,实际的画面与VideoCapture的实际画面时差越拉越大。

这个问题,可以通过缩小缓冲区尺寸来解决。

cap.set 设定VideoCapture的各种属性,这里指定缓冲区的尺寸为1:

cap.set(cv2.CAP_PROP_BUFFERSIZE,1)

完整一些的代码片段:

# 摄像头的IP地址  
# http://用户名:密码@IP地址:端口/
ip_camera_url = 'http://admin:admin@192.168.2.237:8081/'
# 创建一个VideoCapture
cap = cv2.VideoCapture(ip_camera_url)
# 设置缓存区的大小 !!!
cap.set(cv2.CAP_PROP_BUFFERSIZE,1)
  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Delv_Peter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值