前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 调用海康威视 摄像头 显示预览画面

Python 调用海康威视 摄像头 显示预览画面

作者头像
为为为什么
发布2024-05-23 14:27:07
1150
发布2024-05-23 14:27:07
举报
文章被收录于专栏:又见苍岚又见苍岚

本文记录Python 调用海康威视摄像头,开启预览画面的方法。

准备工作

  1. 安装好 Python , Opencv-python
  2. 配置测试机与摄像头 IP,二者在同一个网段

rtsp

支持 RTSP(Runtime Stream Protocol)协议的摄像头可以很方便地用 opencv i调用

代码语言:txt
复制
#coding=utf-8
import cv2

ip_str = '192.168.1.64'
rtsp_port = '554'

url = "rtsp://admin:password@" + ip_str + ":" + rtsp_port + "/Streaming/Channels/2"
cap = cv2.VideoCapture(url)
ret,frame = cap.read()
while ret:
    ret,frame = cap.read()
    cv2.imshow("frame",frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
 
cv2.destroyAllWindows()
cap.release()

hikvisionapi

也可以用第三方 API 实现,不过这个 API 文档写的不好,网上资料也不多,我勉强搞了个能显示模糊图像的:

代码语言:txt
复制
# 导入必要的库
import cv2
from hikvisionapi import Client
import numpy as np
import io
from PIL import Image
 
def string_to_image(string, width, height):
    image = Image.frombytes('RGB', (width, height), string)
    return image

# 连接到摄像头
cam_ip = 'http://192.168.1.64'
cam_username = 'admin'
cam_password = 'password'
cam = Client(cam_ip, cam_username, cam_password)


# Dict response (default)
response = cam.System.deviceInfo(method='get')

# 打印设备的信息
print(response)


cam.Streaming.channels[101]

while True:
    response = cam.Streaming.channels[101].picture(method='get', type='opaque_data')
    response2 = cam.Streaming.channels[101].picture_url
    data = response.iter_content(chunk_size=999999)
    for chunk in data:
        image = Image.open(io.BytesIO(chunk))
        cv2.imshow('Video Stream', np.array(image))
        
        # 按下q键退出循环
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

官方例程

搞了半天都是 bug 没跑起来,后续更新吧。

参考资料

文章链接: https://cloud.tencent.com/developer/article/2419854

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-5-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • rtsp
  • hikvisionapi
  • 官方例程
  • 参考资料
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档