Opening a Camera
Live camera input uses the same VideoCapture API as video files. The only difference is passing a device index (0 for default camera) instead of a file path.
8 min•By Priygop Team•Updated 2026
Live Camera Capture
Live Camera Capture
import cv2
import time
def live_camera_demo(camera_index=0, duration_sec=30):
"""
Capture from a live camera and display the feed.
Press 'q' to quit early.
camera_index: 0 = default webcam, 1 = second camera, etc.
"""
cap = cv2.VideoCapture(camera_index)
if not cap.isOpened():
print(f"Error: Could not open camera {camera_index}")
print("Try a different index (0, 1, 2...)")
return
# Set camera resolution (if supported)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
cap.set(cv2.CAP_PROP_FPS, 30)
print(f"Camera opened: {int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))}x"
f"{int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))} @ "
f"{cap.get(cv2.CAP_PROP_FPS):.0f} FPS")
frame_count = 0
start_time = time.time()
while True:
ret, frame = cap.read()
if not ret:
print("Failed to read frame")
break
# Process frame here...
frame_count += 1
elapsed = time.time() - start_time
fps = frame_count / elapsed if elapsed > 0 else 0
cv2.putText(frame, f"FPS: {fps:.1f}", (10, 30),
cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 255, 0), 2)
cv2.imshow("Live Camera", frame)
# 'q' to quit, or stop after duration
if cv2.waitKey(1) & 0xFF == ord("q"):
break
if elapsed >= duration_sec:
break
cap.release()
cv2.destroyAllWindows()
print(f"Camera closed: {frame_count} frames captured")
live_camera_demo(camera_index=0, duration_sec=10)Diagram
Loading diagram…
Machine Learning follows a structured pipeline from data to deployment