python读取mp4视频,读取摄像头代码

python读取mp4视频

python 复制代码
import cv2

# 读取视频文件
video_path = 'path_to_your_video.mp4'  # 将此处替换为你的MP4文件路径
cap = cv2.VideoCapture(video_path)

# 检查视频是否成功打开
if not cap.isOpened():
    print("Error: Could not open video.")
    exit()

# 播放视频
while True:
    ret, frame = cap.read()
    if not ret:
        break

    # 显示视频帧
    cv2.imshow('Video', frame)

    # 按 'q' 键退出播放
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放视频捕获对象并关闭所有显示窗口
cap.release()
cv2.destroyAllWindows()

python读取摄像头

python 复制代码
import cv2

def capture_video(camera_index=0):
    """
    Capture video from the specified camera index (default is 0 for the built-in camera).
    Press 'q' to exit the video stream.
    """
    # 打开摄像头
    cap = cv2.VideoCapture(camera_index)

    if not cap.isOpened():
        print(f"Cannot open camera {camera_index}")
        return

    while True:
        # 读取帧
        ret, frame = cap.read()
        if not ret:
            print("Cannot receive frame (stream end?). Exiting ...")
            break

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

        # 按下 'q' 键退出
        if cv2.waitKey(1) == ord('q'):
            break

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

if __name__ == "__main__":
    capture_video(camera_index=0)  # 0 表示默认的笔记本自带摄像头

检查有几个可用摄像头

python 复制代码
import cv2

def list_cameras(max_cameras=10):
    """
    List available cameras.
    """
    available_cameras = []
    for index in range(max_cameras):
        cap = cv2.VideoCapture(index)
        if cap.isOpened():
            available_cameras.append(index)
            cap.release()
    return available_cameras

def select_camera(camera_index):
    """
    Open the specified camera and start capturing video.
    """
    cap = cv2.VideoCapture(camera_index)
    if not cap.isOpened():
        print(f"Cannot open camera {camera_index}")
        return

    while True:
        ret, frame = cap.read()
        if not ret:
            print("Cannot receive frame (stream end?). Exiting ...")
            break

        cv2.imshow(f'Camera {camera_index}', frame)
        if cv2.waitKey(1) == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()

if __name__ == "__main__":
    cameras = list_cameras()
    print(f"Available cameras: {cameras}")

    if cameras:
        selected_camera = cameras[0]  # You can change the index to select a different camera
        print(f"Using camera {selected_camera}")
        select_camera(selected_camera)
    else:
        print("No cameras found.")
相关推荐
HXQ_晴天21 分钟前
CASToR 生成的文件进行转换
python
CV缝合救星23 分钟前
【Arxiv 2025 预发行论文】重磅突破!STAR-DSSA 模块横空出世:显著性+拓扑双重加持,小目标、大场景统统拿下!
人工智能·深度学习·计算机视觉·目标跟踪·即插即用模块
java1234_小锋1 小时前
Scikit-learn Python机器学习 - 特征预处理 - 标准化 (Standardization):StandardScaler
python·机器学习·scikit-learn
Python×CATIA工业智造1 小时前
Python带状态生成器完全指南:从基础到高并发系统设计
python·pycharm
向qian看_-_2 小时前
Linux 使用pip报错(error: externally-managed-environment )解决方案
linux·python·pip
Nicole-----2 小时前
Python - Union联合类型注解
开发语言·python
youcans_5 小时前
【医学影像 AI】YoloCurvSeg:仅需标注一个带噪骨架即可实现血管状曲线结构分割
人工智能·yolo·计算机视觉·分割·医学影像
Eric.5655 小时前
python advance -----object-oriented
python
云天徽上6 小时前
【数据可视化-107】2025年1-7月全国出口总额Top 10省市数据分析:用Python和Pyecharts打造炫酷可视化大屏
开发语言·python·信息可视化·数据挖掘·数据分析·pyecharts
THMAIL6 小时前
机器学习从入门到精通 - 数据预处理实战秘籍:清洗、转换与特征工程入门
人工智能·python·算法·机器学习·数据挖掘·逻辑回归