返回

海康工业相机 Python 接入教程:视频流实时获取、抓取图片、上传

后端

使用海康工业相机和 Python 实现实时视频流和图像抓取

准备工作

踏上计算机视觉之旅的第一步,就是准备必要的硬件和软件。你需要:

  • 海康工业相机(例如:MV-CU060-10GM)
  • Python 3.x
  • OpenCV 库
  • 海康工业相机 SDK

安装 OpenCV 和海康工业相机 SDK

  1. 安装 OpenCV 库:pip install opencv-python
  2. 安装海康工业相机 SDK:将 SDK 目录中的“include”和“lib”文件夹添加到系统的环境变量中。

连接海康工业相机

拿起 USB 线缆,将海康工业相机与电脑连接。打开相机电源,并在设备管理器中找到它。记下相机的设备名称,例如:MV-CU060-10GM

编写 Python 代码

准备好舞台,现在是编写代码的时候了。使用以下 Python 代码捕捉实时视频流:

import cv2

# 初始化海康工业相机
camera = cv2.VideoCapture(0)

# 设置相机分辨率
camera.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

# 开始捕捉视频流
while True:
    # 读取一帧视频
    ret, frame = camera.read()

    # 显示视频帧
    cv2.imshow('Video Stream', frame)

    # 按下 'q' 键退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放相机资源
camera.release()

# 销毁所有窗口
cv2.destroyAllWindows()

运行代码

舞台已搭好,灯光亮起,是时候让代码闪耀了。在命令行窗口中,导航到 Python 代码所在的目录,然后运行:python main.py

图像抓取和上传

为了更进一步,我们可以抓取图像并上传到服务器。只需在代码中添加以下内容:

import cv2
import requests

# ... (先前的代码) ...

# 将视频帧编码为 JPEG 格式
_, jpg_buffer = cv2.imencode('.jpg', frame)

# 将 JPEG 缓冲区转换为 base64 字符串
jpg_base64 = base64.b64encode(jpg_buffer).decode('utf-8')

# 将 base64 字符串发送到服务器
response = requests.post('http://your-server.com/upload', json={'image': jpg_base64})

# ... (其后的代码) ...

结论

恭喜你,现在你已经掌握了使用海康工业相机进行实时视频流、图像抓取和上传的技巧。前往浩瀚的计算机视觉世界,探索更多精彩内容。

常见问题解答

  1. 如何更改相机分辨率?
    使用 set() 方法,例如:camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)

  2. 如何退出视频流?
    按下 'q' 键即可退出。

  3. 如何更改服务器 URL?
    response = requests.post() 行中,修改 'http://your-server.com/upload'。

  4. 我可以使用不同的相机型号吗?
    是的,但你可能需要调整代码中的相机设备名称。

  5. 哪里可以找到更多帮助?
    查阅 OpenCV 文档和海康工业相机 SDK 文档。