在黑盒子跑算法是一种什么体验之前端rstp拉流

什么是黑盒子

刚开始拿到这个东西,完全没有使用经验,看着就很懵
后来借了一个显示屏,一套无线鼠标和键盘,将盒子通上电,接上网线
就可以看到它其实相当于一个完整的linux系统(板子是nx)
然后在这个系统内运行所写的算法

安装python

linux一般自带python,可以根据以下指令查看python的版本

python --versin
python
python3

安装opencv

输入以下指令安装opencv,可能会因为网速的问题下载失败

pip3 install opencv-python

可以切换成镜像源下载,输入以下指令

pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

我在下载过程中,遇到一个问题:一直卡在building
开始是发现没有安装cython,但是还是不成功
后来的解决方案是:下载nx版的.whl文件,手动放置在python3的库中,bingo!

检查是否安装成功

python3
import cv2
cv2.__version__

Python拉取海康摄像头rtsp流

参考链接:Python调用海康威视网络相机之——python读取相机rtsp码流显示画面
参考链接:Python拉取海康摄像头rtsp流-小白适用

海康IPcamera rtsp地址和格式:
rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream

说明:
username: 用户名。例如admin。
password: 密码。例如12345。
ip: 为设备IP。例如 192.0.0.64。
port: 端口号默认为554,若为默认可不填写。
codec:有h264、MPEG-4、mpeg4这几种。
channel: 通道号,起始为1。例如通道1,则为ch1。
subtype: 码流类型,主码流为main,辅码流为sub。

通过修改ip地址、用户名、密码三处,拉取媒体流。

import cv2
ip='192.168.2.111'
user='admin'
password='123456'
cap = cv2.VideoCapture("rtsp://"+ user +":"+ password +"@" + ip + ":554/h264/ch1/main/av_stream")
ret, frame = cap.read()
cv2.namedWindow(ip,0)
cv2.resizeWindow(ip,500,300)
while ret:
    ret, frame = cap.read()
    cv2.imshow(ip,frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cv2.destroyAllWindows()
cap.release()

调取摄像头数据后,通过算法实现检测

算法

报警输出

通过算法对rtsp拉流的视频流进行检测,将报警信号输出到服务器
这里为了检测报警输出是否成功
通过fpt搭建一个虚拟服务器
见下一篇

你可能感兴趣的:(python,opencv,开发语言)