海康威视工业相机Python控制库
Project description
HikCamera
海康威视工业相机Python控制库 - 简单易用的海康威视工业相机(包括GigE网口和USB接口)Python控制库。
特性
- ✅ 支持多种接口: 支持GigE网口相机和USB相机
- 🚀 简单易用: 提供简洁的Python接口,易于集成
- 🔍 自动设备枚举: 自动发现和识别连接的相机设备
- 🎛️ 完整参数控制: 支持曝光时间、增益、ROI等参数控制
- 🛡️ 异常处理: 完善的错误处理和资源管理
- 📦 零依赖冲突: 只依赖numpy和opencv-python
安装
从PyPI安装(推荐)
pip install hikcamera
从源码安装
git clone https://github.com/yourusername/hikcamera.git
cd hikcamera
pip install -e .
系统要求
- Python >= 3.9
- Windows操作系统
- 已安装海康威视MVS SDK
- numpy >= 1.24.0
- opencv-python >= 4.8.0
快速开始
基本使用
from hikcamera import HKCamera
# 创建相机实例(自动枚举所有设备)
camera = HKCamera()
# 启动采集
camera.start_camera()
# 设置曝光时间(10ms)
camera.set_exposure_time(10000)
# 获取图像
image = camera.get_image()
# 保存图像
import cv2
cv2.imwrite("output.png", image)
# 清理资源
del camera
指定设备
# 使用第一个发现的设备
camera = HKCamera(camera_idx=0)
# 对于GigE相机,可以通过IP地址指定
camera = HKCamera(camera_ip="192.168.1.100")
# 对于USB相机,可以通过序列号指定
camera = HKCamera(camera_ip="DA2728737")
连续采集
from hikcamera import HKCamera
import cv2
camera = HKCamera()
camera.start_camera()
while True:
image = camera.get_image()
if image is not None:
cv2.imshow('Camera', image)
if cv2.waitKey(1) & 0xFF == 27: # ESC键退出
break
cv2.destroyAllWindows()
del camera
高级功能
参数控制
# 获取参数
width = camera.get_value("int_value", "Width")
height = camera.get_value("int_value", "Height")
exposure = camera.get_exposure_time()
# 设置参数
camera.set_exposure_time(15000) # 15ms
camera.set_value("float_value", "Gain", 10.0)
设备信息
# 枚举所有设备
device_list = HKCamera.enum_devices()
print(f"发现 {device_list.nDeviceNum} 个设备")
# 显示设备信息
for i in range(device_list.nDeviceNum):
# 设备信息会自动打印
pass
示例程序
库包含多个示例程序,展示各种使用场景:
- basic_usage.py: 基本的相机操作
- continuous_capture.py: 连续采集和实时显示
- advanced_control.py: 高级参数控制
运行示例:
# 基本使用
python -m hikcamera.examples.basic_usage
# 连续采集
python -m hikcamera.examples.continuous_capture
# 高级控制
python -m hikcamera.examples.advanced_control
支持的相机型号
海康威视MV系列工业相机,包括但不限于:
- MV-CA系列 (千万像素)
- MV-CM系列 (百万像素)
- MV-CS系列 (USB相机)
- 其他兼容MVS SDK的型号
故障排除
找不到相机
- 检查相机是否正确连接
- 确认MVS SDK已正确安装
- 尝试以管理员身份运行程序
- 检查防火墙设置
依赖问题
# 重新安装依赖
pip install --upgrade numpy opencv-python
DLL加载错误
确保MVS SDK已正确安装,并且DLL文件在系统PATH中。
开发
运行测试
# 运行所有测试
python -m pytest src/hikcamera/tests/
# 运行特定测试
python -m pytest src/hikcamera/tests/test_usb_camera.py
代码格式化
# 使用black格式化代码
black src/hikcamera/
# 使用flake8检查代码风格
flake8 src/hikcamera/
许可证
MIT License - 详见 LICENSE 文件
贡献
欢迎提交Issue和Pull Request!
更新日志
0.1.0 (2026-04-09)
- 🎉 首次发布
- ✅ 支持GigE和USB相机
- ✅ 基本的图像采集功能
- ✅ 参数控制功能
- ✅ 完整的示例代码
联系方式
- 项目主页: https://github.com/yourusername/hikcamera
- 问题反馈: https://github.com/yourusername/hikcamera/issues
- 邮箱: static2d@example.com
致谢
- 海康威视机器 vision (MVS) SDK
- numpy和opencv-python项目
注意: 本库需要海康威视MVS SDK的支持,请确保在使用前已正确安装。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mv_hikcamera-0.1.0.tar.gz
(57.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mv_hikcamera-0.1.0.tar.gz.
File metadata
- Download URL: mv_hikcamera-0.1.0.tar.gz
- Upload date:
- Size: 57.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c555764c1adda9ebf5249228ff6f7eddfb94e58bb5cd4494d0ab8666c89fd2fd
|
|
| MD5 |
be855212c8bbf643289cfd4f761fe6b3
|
|
| BLAKE2b-256 |
5a753059af2c29617174502cf293fb48107a82b4b0e66192bad6d319d166564e
|
File details
Details for the file mv_hikcamera-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mv_hikcamera-0.1.0-py3-none-any.whl
- Upload date:
- Size: 64.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09fb753ebcffb538e1a68402addb4bc9e7bb961cb573efdd53a77f673848a89a
|
|
| MD5 |
4ee0e84fb5c4f0ee41162735fad036f6
|
|
| BLAKE2b-256 |
82242c5a762e5f56048eb1cc66713d42be5df00c62971e75da9b46f16f9a7bba
|