opencv+python+win10 cv2.videocapture无法读取笔记本摄像头

源码

import cv2


def videocapture():
    cap = cv2.VideoCapture(0)  # 生成读取摄像头对象
    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))  # 获取视频的宽度
    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))  # 获取视频的高度
    fps = cap.get(cv2.CAP_PROP_FPS)  # 获取视频的帧率
    fourcc = int(cap.get(cv2.CAP_PROP_FOURCC))  # 视频的编码
    # 定义视频对象输出
    writer = cv2.VideoWriter("video_result.mp4", fourcc, fps, (width, height))
    while cap.isOpened():
        ret, frame = cap.read()  # 读取摄像头画面
        cv2.imshow('teswell', frame)  # 显示画面
        key = cv2.waitKey(24)
        writer.write(frame)  # 视频保存
        # 按Q退出
        if key == ord('q'):
            break
    cap.release()  # 释放摄像头
    cv2.destroyAllWindows()  # 释放所有显示图像窗口


if __name__ == '__main__':
    videocapture()

输出结果

img

代码确实没问题

代码本身没有问题,在台式电脑上运行正常。检查一下笔记本电脑的摄像头是否可用,是内置的还是usb外接的,cameraid选择是否正确,有些使用笔记本的写成cap = cv2.VideoCapture(700)运行正常的。参考一下这里及跟帖:
cv2.VideoCapture(0)获取USB摄像头失败解决方案_hushaoqiqimingxing的博客-CSDN博客 问题:台式机没有摄像头,外接USB摄像头,通过cv2.VideoCapture(0)捕获视频图像报错[ WARN:0] videoio(MSMF): OnReadSample() is called with error status: -2147024809[ WARN:0] videoio(MSMF): async ReadSample() call is failed with e... https://blog.csdn.net/hushaoqiqimingxing/article/details/96888775