实验环境
(1)硬件环境
人工智能实训平台:具备多摄像头接口的实验设备
摄像头:LKZC-4K-AF型号及其他配套摄像头设备
计算机:安装有Windows系统,用于运行调试软件和虚拟机
(2)软件环境
Vmware虚拟环境:用于运行Ubuntu系统的虚拟化平台
Python 3.x 环境:支持OpenCV库运行的编程语言环境
OpenCV库:用于摄像头控制和视频流处理的计算机视觉库
摄像头调试软件:测模组软件(用于摄像头参数配置)
实验步骤
1. 调试摄像头
- 在电脑桌面上找到"测模组"软件,鼠标双击打开。
- 在软件左上角点击"Devices"菜单,选择并勾选"LKZC-4K-AF"摄像头设备。
- 点击"Options"选项,选择进入"属性"设置界面。
- 根据实验需求修改相关参数(如分辨率、帧率等),完成后点击"确定"保存设置。
2. 启动摄像头并确定编号
说明:本平台通过OpenCV库控制摄像头,设备已预装OpenCV。需注意:摄像头编号可能在电脑断电重启后发生变化,因此需要通过源码文件夹下的Camera.py确定每个摄像头对应的编号。
注意:摄像头不可随意拔插,以免导致编号紊乱!
- 创建或打开Camera.py文件,代码详情如下:
- 运行该代码,会出现两个窗口,分别显示两个摄像头的实时画面。
- 通过观察窗口显示的画面,记录各个摄像头对应的编号(0或1)。
Camera.py代码详情
import cv2
# 打开两个摄像头
cap0 = cv2.VideoCapture(0)
cap1 = cv2.VideoCapture(1)
# 检查摄像头是否成功打开
if not cap0.isOpened(): # 打开失败
print("摄像头1启动失败")
exit()
if not cap1.isOpened(): # 打开失败
print("摄像头2启动失败")
exit()
# 进入主循环,读取并显示两个摄像头的视频流
while True:
# 从每个摄像头中读取一帧
_, fram0 = cap0.read()
_, fram1 = cap1.read()
# 将每个摄像头的视频流显示在不同的窗口中
cv2.imshow('0', fram0)
cv2.imshow('1', fram1)
# 等待按键事件,如果按下键盘上的 'ESC' 键(ASCII码为27),则退出循环
if cv2.waitKey(1) == 27:
break
# 释放两个摄像头的资源并关闭所有窗口
cap0.release()
cap1.release()
cv2.destroyAllWindows()
代码说明:
cv2.VideoCapture(n):打开编号为n的摄像头,n为整数(通常从0开始)isOpened():检查摄像头是否成功打开,返回布尔值read():读取一帧图像,返回(ret, frame),ret为是否成功读取的标志,frame为图像数据imshow(window_name, frame):在指定名称的窗口中显示图像waitKey(1):等待1毫秒的按键输入,返回按键的ASCII码,ESC键的ASCII码为27release():释放摄像头资源destroyAllWindows():关闭所有打开的窗口
实验结果
-
- 0与1分别对应摄像头左右两个摄像头
