Skip to content

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

Notifications You must be signed in to change notification settings

DIYer22/hik_camera

Repository files navigation

海康 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 库,能方便标定相机内外参、并快速构建双目深度相机

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published