项目介绍

DIYer22/hik_camera 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,目前获得 126 个 Star、15 次 Fork。

仓库全名
DIYer22/hik_camera
Star 数
126
Fork 数
15
未关闭 Issue
4

README 摘要

海康 GigE Vision 网口工业相机 Python 控制库 使用 Pythonic 风格封装海康网口工业相机 Python SDK, 灵活易用, 方便集成. ▮ 特性 Features 易用的 Pythonic API: 采用面向对象封装, 方便多相机管理 支持 with 语法来调用: with HikCamera() as cam: 简洁直观的控制语法: cam["ExposureTime"]=100000, print(cam["ExposureTime"]) 鲁棒(robust): 遇到错误, 会自动 reset 相机并 retry 接口为: cams.robustgetframe() 支持获得/处理/存取 raw 图, 并保存为 .dng 格式 Example 见 ./test/testraw.py 支持每隔一定时间自动拍一次照片来调整自动曝光, 以防止太久没触发拍照, 导致曝光失效 Example 见…

完整内容见 GitHub 原始 README 或本页 。

常见问题

hik_camera 用什么语言开发?

主要使用 Python 编写,目前有 126 个 Star。

如何获取 hik_camera 的源码?

可以直接克隆仓库:git clone https://github.com/DIYer22/hik_camera.git,默认分支为 master;安装与运行步骤见仓库 README。

hik_camera 最近还在维护吗?

仓库最近一次更新为 2024年8月7日,当前有 4 个未关闭 Issue;Star 数为 126,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

Easy-to-use Python API for Hikrobot Ethernet Industrial Camera (Pythonic 风格的海康网口工业相机 SDK)

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
157
价值分
79
活跃状态
活跃

语言占比

Dockerfile
Python

README

海康 GigE Vision 网口工业相机 Python 控制库

使用 Pythonic 风格封装海康网口工业相机 Python SDK, 灵活易用, 方便集成.

▮ 特性 Features

  • 易用的 Pythonic API:
    • 采用面向对象封装, 方便多相机管理
    • 支持 with 语法来调用: with HikCamera() as cam:
    • 简洁直观的控制语法: cam["ExposureTime"]=100000, print(cam["ExposureTime"])
  • 鲁棒(robust): 遇到错误, 会自动 reset 相机并 retry
    • 接口为: cams.robust_get_frame()
  • 支持获得/处理/存取 raw 图, 并保存为 .dng 格式
  • 支持每隔一定时间自动拍一次照片来调整自动曝光, 以防止太久没触发拍照, 导致曝光失效
  • 支持 Windows/Linux 系统, 有编译好的 Docker 镜像 (diyer22/hik_camera)
  • 支持 CS/CU/CE/CA/CH 系列的 GigE Vision 网口工业相机
  • 方便封装为 ROS 节点

▮ 安装 Install

  • Docker 一键运行:
    • docker run --net=host -v /tmp:/tmp -it diyer22/hik_camera
  • 手动安装方案:
    1. 安装官方驱动: 在海康机器人官网下载安装对应系统的 “机器视觉工业相机客户端 MVS SDK”
      • 官网下载需要注册, 也可以在 Dockerfile 里面找到 Linux 版的下载链接
    2. pip install hik_camera
    3. 若遇到问题, 可以参考 Dockerfile, 一步一步手动安装
  • 验证: 接入相机, 验证 hik_camera 是否安装成功:
$ python -m hik_camera.hik_camera

All camera IP adresses: ['10.101.68.102', '10.101.68.103']
Saveing image to: /tmp/10.101.68.102.jpg
"cam.get_frame" spend time: 0.072249
----------------------------------------
imgs = cams.robust_get_frame()
└── /: dict  2
    ├── 10.101.68.102: (3036, 4024, 3)uint8
    └── 10.101.68.103: (3036, 4024, 3)uint8
"cams.get_frame" spend time: 0.700901

▮ 用法 Usage

图像采集 Demo

python -m hik_camera.collect_img
  • 运行后会弹出 opencv 窗口显示相机图像流, 按 "空格" 键拍照, Q 键退出
  • 采图 demo 源代码在 hik_camera/collect_img.py

Python 接口

from hik_camera import HikCamera
ips = HikCamera.get_all_ips()
print("All camera IP adresses:", ips)
ip = ips[0]
cam = HikCamera(ip)
with cam:  # 用 with 的上下文的方式来 OpenDevice
   cam["ExposureAuto"] = "Off"  # 配置参数和海康官方 API 一致
   cam["ExposureTime"] = 50000  # 单位 ns
   rgb = cam.robust_get_frame()  # rgb's shape is np.uint8(h, w, 3)
   print("Saveing image to:", cam.save(rgb, ip + ".jpg"))

广告:相机标定推荐使用 calibrating 库,能方便标定相机内外参、并快速构建双目深度相机

评论

暂无评论