机器学习 = 训练样本+特征+分类器
深度学习 = 海量的训练样本+人工神经网络
样本总是重要的,有时候一张张图片的寻找总是很费事,可以录个样本的视频,将视频分解为图片,可以获得不同的样本,省时省力。
视频分解图片
API介绍:
cv2.VideoCapture():用于读取视频文件
isOpened():表示视频文件是否打开
import cv2
cap = cv2.VideoCapture('E:\\pictures\\video1.mp4')
isOpened = cap.isOpened() #判断是否打开视频
print(isOpened)
fps = cap.get(cv2.CAP_PROP_FPS) #视频的帧率,即一秒出现多少张图片
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) #视频中图片的宽度
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) #视频中图片的高度
print("fps="+str(fps)+",width="+str(width)+",height="+str(height))
i = 0 #播放图片的个数
while(isOpened): #在视频打开的情况下执行
if i == 10:
break
else:
i +=1
(flag,frame) = cap.read()
#表示读取每一张图片,flag表示读取是否成功,frame表示图片的内容
fileName = '0image' + str(i) + '.jpg' #每张图片的文件名
print(fileName)
if flag == True: #保存视频的前十个图片
cv2.imwrite(fileName,frame,(cv2.IMWRITE_JPEG_QUALITY,100))
#(cv2.IMWRITE_JPEG_QUALITY,100)表示采用jpg的格式,100表示的是存储质量
print("end!")
输出:
True
fps=29.008016032064127,width=540,height=960
0image1.jpg
0image2.jpg
0image3.jpg
0image4.jpg
0image5.jpg
0image6.jpg
0image7.jpg
0image8.jpg
0image9.jpg
0image10.jpg
end!
图片合成视频
API:cv2.VideoWriter(‘2.mp4’,-1,5,size)
参数说明:第一个参数表示视频文件名,第二个参数-1表示使用支持的解码器,第三个参数5表示当前的帧率,即一秒播放几张图片,第四个参数size表示视频的尺寸。
import cv2
img = cv2.imread('E:\\python_work\\0image1.jpg')
imgInfo = img.shape
size = (imgInfo[1],imgInfo[0]) #size为长和宽,即width和height
print(size)
videoWrite = cv2.VideoWriter('2.mp4',-1,5,size)
for i in range(1,11):
fileName = '0image' + str(i) + '.jpg'
img = cv2.imread(fileName)
videoWrite.write(img)
print('end!')