c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python调用外置摄像头

更新时间:2023-12-22

Python调用外置摄像头

如果你正在使用 Python 编写一个基于图像处理或计算机视觉的应用程序,那么你可能需要访问外部的摄像头。在本篇文章中,我们将介绍如何在 Python 程序中调用外置摄像头。

安装需要的库

在调用外置摄像头之前,你需要先安装 OpenCV 库,以便你可以调用 OpenCV 中的函数来访问摄像头。可以按照以下方式安装它们:

pip install opencv-python
pip install opencv-contrib-python

调用摄像头并捕获图像

下面的代码展示了如何使用 OpenCV 在 Python 中调用外置摄像头并捕获图像:

import cv2

cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()

    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break

    cv2.imshow('frame', frame)

    if cv2.waitKey(1) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

上面的代码中,我们使用 cap = cv2.VideoCapture(0) 来调用摄像头,并使用 cap.read() 获取视频流中的帧。同时,我们使用 cv2.imshow() 在窗口中显示帧,使用 cv2.waitKey() 来等待用户按下 "q" 键来退出程序。

设置摄像头参数

当你调用外置摄像头时,你可能需要设置一些参数,例如摄像头的分辨率、帧数、曝光时间等。下面的代码展示了如何设置这些参数:

import cv2

cap = cv2.VideoCapture(0)

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)
cap.set(cv2.CAP_PROP_FPS, 30)
cap.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0.25)

while True:
    ret, frame = cap.read()

    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break

    cv2.imshow('frame', frame)

    if cv2.waitKey(1) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

上面的代码中,我们使用 cap.set() 来设置摄像头的参数。例如,我们使用 cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320) 来设置帧的宽度为 320 像素,使用 cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240) 来设置帧的高度为 240 像素,使用 cap.set(cv2.CAP_PROP_FPS, 30) 来设置帧率为 30 帧/秒,使用 cap.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0.25) 来设置曝光时间为 1/4 秒。

总结

在本篇文章中,我们介绍了如何在 Python 程序中调用外置摄像头。我们讨论了安装需要的库、调用摄像头并捕获图像以及设置摄像头参数。希望这篇文章对你有所帮助!