yongyuandetongwei 2023-11-01 16:07 采纳率: 0%
浏览 13

如何调用两个USB摄像头?

如何利用python代码调用opencv库来控制两个USB摄像头,并通过按下不同按键对不同摄像头进行拍照?
下面分享一个我和chatgpt交流对话,希望可以抛砖引玉,谢谢大家。
https://poe.com/s/mt0X7oPSBJ9d9RfKI5zx

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-01 18:30
    关注

    【以下回答由 GPT 生成】

    问题解答:

    首先,你需要安装OpenCV库。可以使用以下命令:

    pip install opencv-python
    

    接下来,你可以使用以下代码来控制两个USB摄像头:

    import cv2
    
    # 打开第一个摄像头
    cap1 = cv2.VideoCapture(0)
    # 打开第二个摄像头
    cap2 = cv2.VideoCapture(1)
    
    while True:
        # 读取第一个摄像头的图像帧
        ret1, frame1 = cap1.read()
        # 读取第二个摄像头的图像帧
        ret2, frame2 = cap2.read()
    
        # 显示第一个摄像头的图像帧
        cv2.imshow('Camera 1', frame1)
        # 显示第二个摄像头的图像帧
        cv2.imshow('Camera 2', frame2)
    
        # 等待用户按下按键
        key = cv2.waitKey(1)
    
        # 如果用户按下 's' 键,则保存第一个摄像头的图像帧
        if key == ord('s'):
            cv2.imwrite('camera1_image.jpg', frame1)
            print('Image captured from Camera 1.')
    
        # 如果用户按下 'd' 键,则保存第二个摄像头的图像帧
        if key == ord('d'):
            cv2.imwrite('camera2_image.jpg', frame2)
            print('Image captured from Camera 2.')
    
        # 如果用户按下 'q' 键,则退出循环
        if key == ord('q'):
            break
    
    # 释放摄像头资源
    cap1.release()
    cap2.release()
    
    # 关闭所有窗口
    cv2.destroyAllWindows()
    

    这段代码会打开两个摄像头,并持续从两个摄像头中读取图像帧,并显示在窗口中。当你按下 's' 键时,程序会将当前第一个摄像头的图像帧保存为 camera1_image.jpg。当你按下 'd' 键时,程序会将当前第二个摄像头的图像帧保存为 camera2_image.jpg。如果你按下 'q' 键,则会退出循环。

    请确保你已经连接了两个USB摄像头,并且两个摄像头的索引分别为0和1。你可以根据你的具体情况修改索引。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月1日

悬赏问题

  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵