1. 使用摄像头捕捉图像,将其转换为灰度帧后,输出视频图像
import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
while(True):
# 一帧一帧的捕捉
ret,frame = cap.read()
# 将每一帧从RGB转换成灰度
gray = cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
#显示捕捉的结果帧
cv.imshow('frame',gray)
#按q退出
if cv.waitKey(1) & 0xFF==ord('q'):
break
#释放摄像头
cap.release()
#释放所有窗口
cv.destroyAllWindows()
2. 读取外部的彩色视频,将其转换为灰度帧后显示视频
import numpy as np
import cv2 as cv
cap = cv.VideoCapture('D:/test.mp4')
#播放视频
while(cap.isOpened()):
# 一帧一帧的捕捉
ret,frame = cap.read()
# 将每一帧从RGB转换成灰度
gray = cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
#显示捕捉的结果帧
cv.imshow('frame',gray)
#按q退出,参数为1ms播放速度较快,一般设为25毫秒
if cv.waitKey(25) & 0xFF==ord('q'):
break
#释放视频
cap.release()
#释放所有窗口
cv.destroyAllWindows()
3. 摄像头捕捉彩色图像,设置输出视频的格式,将捕捉到的帧镜像化后输出到程序所在目录
import numpy as np
import cv2 as cv
# 打开摄像头
cap = cv.VideoCapture(0)
# 写入视频的格式为XVID
fourcc = cv.VideoWriter_fourcc(*'XVID')
# 第三个参数为fps 第四个参数为视频大小
out=cv.VideoWriter('output.avi',fourcc,20.0,(640,480))
while(cap.isOpened()):
ret,frame = cap.read()
if ret==True:
# 将帧水平翻转(参数为1)
frame = cv.flip(frame,1)
# 将帧写入output.avi
out.write(frame)
# 窗口显示处理过的帧
cv.imshow('frame',frame)
if cv.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# 释放摄像头
cap.release();
# 释放输出的视频
out.release();
# 释放所有窗口
cv.destroyAllWindows()
参考文献:https://docs.opencv.org/4.0.1/d2/de8/group__core__array.html#gaca7be533e3dac7feb70fc60635adf441
我要成为一名优秀的图像处理专家!