Python在windows环境下调用摄像头

import numpy as np
import cv2

# 调用笔记本内置摄像头,所以参数为0,如果有其他的摄像头可以调整参数为1,2
cap = cv2.VideoCapture(0)
while True:
    # 从摄像头读取图片
    sucess, img = cap.read()
    # 转为灰度图片
    if img is None:
        print("img is null")
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 显示摄像头,背景是灰度。
    cv2.imshow("img", gray)
    # 保持画面的持续。
    k = cv2.waitKey(1)
    if k == 27:
        # 通过esc键退出摄像
        cv2.destroyAllWindows()
        break
    elif k == ord("s"):
        # 通过s键保存图片,并退出。
        cv2.imwrite("image2.jpg", img)
        cv2.destroyAllWindows()
        break
# 关闭摄像头
cap.release()

直接运行可能会报错

[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-cff9bdsm\opencv\modules\videoio\src\cap_msmf.cpp (677) CvCapture_MSMF::initStream Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(codec not found)

原因是格式不支持,需要修改摄像头调用方式:
https://www.cnblogs.com/learn643794461/p/13683471.html

cap = cv2.VideoCapture(0 + cv2.CAP_DSHOW)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容