返回
海康工业相机 Python 接入教程:视频流实时获取、抓取图片、上传
后端
2023-01-13 22:53:44
使用海康工业相机和 Python 实现实时视频流和图像抓取
准备工作
踏上计算机视觉之旅的第一步,就是准备必要的硬件和软件。你需要:
- 海康工业相机(例如:MV-CU060-10GM)
- Python 3.x
- OpenCV 库
- 海康工业相机 SDK
安装 OpenCV 和海康工业相机 SDK
- 安装 OpenCV 库:
pip install opencv-python
- 安装海康工业相机 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})
# ... (其后的代码) ...
结论
恭喜你,现在你已经掌握了使用海康工业相机进行实时视频流、图像抓取和上传的技巧。前往浩瀚的计算机视觉世界,探索更多精彩内容。
常见问题解答
-
如何更改相机分辨率?
使用set()
方法,例如:camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
-
如何退出视频流?
按下 'q' 键即可退出。 -
如何更改服务器 URL?
在response = requests.post()
行中,修改 'http://your-server.com/upload'。 -
我可以使用不同的相机型号吗?
是的,但你可能需要调整代码中的相机设备名称。 -
哪里可以找到更多帮助?
查阅 OpenCV 文档和海康工业相机 SDK 文档。