python读取mp4视频
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读取摄像头
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 表示默认的笔记本自带摄像头
检查有几个可用摄像头
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.")