实验环境

(1)硬件环境

人工智能实训平台:具备多摄像头接口的实验设备
摄像头:LKZC-4K-AF型号及其他配套摄像头设备
计算机:安装有Windows系统,用于运行调试软件和虚拟机

(2)软件环境

Vmware虚拟环境:用于运行Ubuntu系统的虚拟化平台
Python 3.x 环境:支持OpenCV库运行的编程语言环境
OpenCV库:用于摄像头控制和视频流处理的计算机视觉库
摄像头调试软件:测模组软件(用于摄像头参数配置)

实验步骤

1. 调试摄像头

  1. 在电脑桌面上找到"测模组"软件,鼠标双击打开。
  2. 在软件左上角点击"Devices"菜单,选择并勾选"LKZC-4K-AF"摄像头设备。
  3. 点击"Options"选项,选择进入"属性"设置界面。
  4. 根据实验需求修改相关参数(如分辨率、帧率等),完成后点击"确定"保存设置。

2. 启动摄像头并确定编号

说明:本平台通过OpenCV库控制摄像头,设备已预装OpenCV。需注意:摄像头编号可能在电脑断电重启后发生变化,因此需要通过源码文件夹下的Camera.py确定每个摄像头对应的编号。
注意:摄像头不可随意拔插,以免导致编号紊乱!
  1. 创建或打开Camera.py文件,代码详情如下:
  2. 运行该代码,会出现两个窗口,分别显示两个摄像头的实时画面。
  3. 通过观察窗口显示的画面,记录各个摄像头对应的编号(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码为27
  • release():释放摄像头资源
  • destroyAllWindows():关闭所有打开的窗口

实验结果

0与1分别对应摄像头左右两个摄像头