超酷个人网站欣赏,dz论坛做分类网站,建筑网片的用途,傻瓜app制作开发【1】引言
前述已经完成了图像和视频的读取学习#xff0c;本次课学习制作gif格式动图。
【2】教程
实际上想制作gif格式动图是一个顺理成章的操作#xff0c;完成了图像和视频的处理#xff0c;那就自然而然会对gif的处理也产生兴趣。
不过在opencv官网、matplotlib官网…【1】引言
前述已经完成了图像和视频的读取学习本次课学习制作gif格式动图。
【2】教程
实际上想制作gif格式动图是一个顺理成章的操作完成了图像和视频的处理那就自然而然会对gif的处理也产生兴趣。
不过在opencv官网、matplotlib官网和numpy官网,都没有找到视频生成gif动图函数imageio()的说明所以就只好百度和CSDN搜索。
幸好找到了官网地址给大家分享Welcome to imageio’s documentation! — imageio 2.36.1 documentation
不过当前对官网还没有很好地理解所以暂不涉及对官网文档的解读。
接下来重点解读imageio()转化视频为gif的操作。
import numpy as np #引入计算模块
import cv2 as cv #引入opencv模块
from imageio import mimsave #引入imageio图片处理模块cap cv.VideoCapture(56789.mp4)
# 声明编码器和创建 VideoWrite 对象
fourcc cv.VideoWriter_fourcc(M,J,P,G)#解码器选择out cv.VideoWriter(56789-100.mp4, fourcc, 200.0, (720,1280)) #保存为MP4格式
grays[] #定义一个空矩阵
while (cap.isOpened()): #自定义函数ret, frame cap.read()if retTrue:out.write(frame) #写入视频cv.imshow(frame, frame) #在屏幕上播放视频grays.append(frame) #视频存入grays矩阵if cv.waitKey(1) 0xFF ord(q):breakelse:break
mimsave(56789-100.gif,grays,fps160,palettesize256) #保存视频为gif格式帧数为160色彩种类数256
# 释放已经完成的工作
cap.release()
out.release()
cv.destroyAllWindows()
这里相对上一课的变化为
【a】引入了imageio模块对视频格式进行转化 from imageio import mimsave #引入imageio图片处理模块 【b】预定义一个空矩阵看来存储视频 grays[] #定义一个空矩阵 【c】使用空矩阵存储视频 if retTrue:out.write(frame) #写入视频cv.imshow(frame, frame) #在屏幕上播放视频grays.append(frame) #视频存入grays矩阵 【d】使用imageio模块转化视频为gif格式 mimsave(56789-100.gif,grays,fps160,palettesize256) #保存视频为gif格式帧数为160色彩种类数256实际上转化的动图颜色暗淡。 【e】存储视频的grays.append(frame) 函数应该放在while循环中经测试没有该循环程序可能不会运行。
【3】效果
掌握了pythonopencvimageio()函数将视频转化为GIF的基本操作技巧成功输出了gif格式动图。