在Ubuntu上使用Python和OpenCV处理视频流,你可以按照以下步骤进行:
pip install opencv-python
VideoCapture
类可以从摄像头视频中读取数据。下面是一个简单的例子,展示如何从默认摄像头读取视频流:import cv2
cap = cv2.VideoCapture(0) # 使用默认摄像头
while True:
ret, frame = cap.read() # 读取一帧画面
if not ret:
break # 如果读取失败,跳出循环
cv2.imshow('Video Stream', frame) # 显示画面
if cv2.waitKey(1) & 0xFF == ord('q'): # 按下'q'键退出
break
cap.release() # 释放资源
cv2.destroyAllWindows() # 关闭所有窗口
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 将帧转换为灰度
cv2.imshow('Video Stream (Gray)', gray_frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
VideoWriter
类。下面是一个简单的例子,展示如何将处理后的灰度视频流保存到文件中:import cv2
cap = cv2.VideoCapture(0)
# 创建 VideoWriter 对象
fourcc = cv2.VideoWriter_fourcc(*'XVID') # 使用 XVID 编码格式
output_file = 'output_video.avi'
out = cv2.VideoWriter(output_file, fourcc, 20.0, (640, 480)) # 创建 VideoWriter 对象
while True:
ret, frame = cap.read()
if not ret:
break
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
out.write(gray_frame) # 将处理后的帧写入视频文件
cap.release()
out.release()
cv2.destroyAllWindows()
这个例子将创建一个名为output_video.avi
的视频文件,其中包含从摄像头视频中读取并转换为灰度的帧。