opencv(python)视频图片转化

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kun1280437633/article/details/86228908

# 视频分解图片
# 方法一
# 1 load 2 info 3 parse 4 imshow imwrite
import cv2
                                                # 可以通过摄像头,也可以通过本地文件
cap = cv2.VideoCapture("1.mp4")                 # 获取一个视频打开cap 1 file name
isOpened = cap.isOpened                         # 判断是否打开‘
print(isOpened)
fps = cap.get(cv2.CAP_PROP_FPS)                 # 帧率 一秒多少张图片  
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))  # w  h
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print(fps,width,height)
i = 0                                           # i记录保存了多少张
while(isOpened):
    if i == 10:                                 # 读取十张照片
        break
    else:
        i = i+1
    (flag,frame) = cap.read()                   # 读取每一张(帧) 返回: flag(是否成功) frame(图片内容)
    fileName = 'image'+str(i)+'.jpg'
    print(fileName)
    if flag == True:                           # 如果读取成功了,保存图片
        cv2.imwrite(fileName,frame,[cv2.IMWRITE_JPEG_QUALITY,100])      # 质量控制: 100表明质量最高。
print('end!')

# 人脸识别的连续帧数为15帧


# 方法二
ffmpeg -i 1.mp4 image%d.jpg
# 图片合成视频(合成流畅视频一秒最低15张)
import cv2
img = cv2.imread('image1.jpg')
imgInfo = img.shape
size = (imgInfo[1],imgInfo[0])                           # 宽度和高度信息
print(size)
fourcc = cv2.VideoWriter_fourcc(*'DIVX') 
videoWrite = cv2.VideoWriter('2.mp4',fourcc,5,size,False)# 写入对象 1 file name 2 编码器 3 帧率 4 size
for i in range(1,11):
    fileName = 'image'+str(i)+'.jpg'
    img = cv2.imread(fileName)
    videoWrite.write(img)                                # 写入方法 1 jpg data
print('end!')

你可能感兴趣的:(图像处理)