#1.使用VideoCapture类捕捉当前摄像头画面并保存10日顿为output.avi视频
使用MOG2分离法检测outpout.avi视频中的运动目标
2.假设现在有视频example.mpg.为视频添加椒盐噪声,并将添加了椒盐噪声的视频另存为jout1.avi.
3.编写图像去噪小程序。
4.编写时钟小程序,显示当前时间。
5.编程实现奥运五环。
1.
import cv2
# 捕捉当前摄像头画面
cap = cv2.VideoCapture(0)
# 定义输出视频的编码方式和帧率
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
while True:
# 读取摄像头画面
ret, frame = cap.read()
if ret:
# 将画面写入输出视频
out.write(frame)
# 显示画面
cv2.imshow('frame', frame)
# 按下q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()
# 使用MOG2分离法检测运动目标
cap = cv2.VideoCapture('output.avi')
fgbg = cv2.createBackgroundSubtractorMOG2()
while True:
ret, frame = cap.read()
if ret:
# 使用MOG2分离法检测运动目标
fgmask = fgbg.apply(frame)
# 显示结果
cv2.imshow('frame', fgmask)
# 按下q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
2.
import cv2
import numpy as np
# 读取视频
cap = cv2.VideoCapture('example.mpg')
# 定义输出视频的编码方式和帧率
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('jout1.avi', fourcc, 20.0, (640, 480))
while True:
ret, frame = cap.read()
if ret:
# 添加椒盐噪声
noise = np.zeros(frame.shape, np.uint8)
cv2.randu(noise, 0, 255)
salt = noise > 245
pepper = noise < 10
frame[salt] = 255
frame[pepper] = 0
# 将带有噪声的视频写入输出视频
out.write(frame)
# 显示带有噪声的视频
cv2.imshow('frame', frame)
# 按下q键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()
3.
import cv2
# 读取图像
img = cv2.imread('example.jpg')
# 高斯滤波
img = cv2.GaussianBlur(img, (5, 5), 0)
# 中值滤波
img = cv2.medianBlur(img, 5)
# 双边滤波
img = cv2.bilateralFilter(img, 9, 75, 75)
# 显示去噪后的图像
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()