以下代码提供了使用 Python 3 拍照的逐步指南:

import cv2

# 创建一个VideoCapture对象,将0作为参数以访问默认摄像头
cap = cv2.VideoCapture(0)

# 检查摄像头是否打开
if not cap.isOpened():
    print("无法打开摄像头")
    exit()

# 定义保存图像的文件名
filename = "image.jpg"

# 无限循环,直到用户按下Esc键退出
while True:
    # 读取摄像头帧
    ret, frame = cap.read()

    # 显示帧
    cv2.imshow("Camera Feed", frame)

    # 等待用户输入
    key = cv2.waitKey(1)

    # 如果用户按下Esc键,则退出循环
    if key == 27:
        break

    # 如果用户按下空格键,则拍照并保存到文件中
    elif key == 32:
        cv2.imwrite(filename, frame)
        print("已将图像保存到", filename)

# 释放摄像头并销毁所有窗口
cap.release()
cv2.destroyAllWindows()

代码备注

  • **import cv2:**导入 OpenCV 库,它提供了图像处理和计算机视觉功能。
  • **VideoCapture(0):**创建 VideoCapture 对象,将 0 作为参数以访问默认摄像头。
  • **isOpened():**检查摄像头是否已成功打开。
  • **filename:**定义要保存图像的文件名。
  • **while True:**无限循环,直到用户按下 Esc 键退出。
  • **cap.read():**从摄像头读取帧,ret 为布尔值指示是否成功读取,frame 为帧图像。
  • **cv2.imshow():**显示帧图像。
  • **cv2.waitKey():**等待用户输入,1 表示等待 1 毫秒。
  • **if key == 27:**如果用户按下 Esc 键,则退出循环。
  • **if key == 32:**如果用户按下空格键,则拍照并保存到文件中。
  • **cv2.imwrite():**将帧图像保存到指定的文件名中。
  • **cap.release():**释放摄像头。
  • **cv2.destroyAllWindows():**销毁所有 OpenCV 窗口。

运行程序

要运行程序,请在命令提示符或终端中输入以下命令:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。