【图片操作】提取GIF的图片帧

简介: gif是我们日常生活中常用的一种图片,它介于视频和图片之间。我们可以用图片的内存体验到一些视频的感觉。但是有时候我们会想把gif的图片全部提取出来,今天我们就来实现一下这个操作。

一、前言

gif是我们日常生活中常用的一种图片,它介于视频和图片之间。我们可以用图片的内存体验到一些视频的感觉。但是有时候我们会想把gif的图片全部提取出来,今天我们就来实现一下这个操作。

二、 OpenCV简单使用

OpenCV库包含很多东西,主要就是计算机视觉和机器学习方面的作用。其中对图像、视频的操作是OpenCV的强项。比起Pillow模块,OpenCV要更加专业,下面我们就来具体看看吧。

1、模块安装

模块安装只需要执行下面的语句即可:

pip install opencv-python
复制代码

安装完成后我们就可以通过下面的的方式导入模块:

import cv2 as cv
复制代码

然后我们可以通过cv.来调用OpenCV中的函数。

2、基本操作

这里我们来看看OpenCV读取图片、视频的操作:

import cv2 as cv
img = cv.imread("test.jpg")
cv.imshow(img, "img")
cv.waitKey()
cv.destroyAllWindows()
复制代码

上面就是读取图片并显示的操作,其中imread用来读取图片、imshow用来显示图片。而:

cv.waitKey()
cv.destroyAllWindows()
复制代码

是显示图片的常规操作。下面看看读取视频的操作:

import cv2 as cv
# 读取视频
video = cv.VideoCapture("test.mp4")
# 读取一帧视频
ret, frame = video.read()
复制代码

上面读取视频的操作,同时我们可以用上面的操作读取GIF。然后我们可以调用read方法实现对视频或GIF帧的读取。 这里的read方法会返回两个参数,第一个是是否有下一帧,第二个则是图片帧。

3、读取GIF的帧

这里我们来读取GIF中的所有帧:

import cv2 as cv
gif = cv.VideoCapture("test.gif")
flag = True
while flag:
    ret, frame = gif.read()
    if not ret:
        flag = False
复制代码

通过上面的代码,我们就可以读取GIF中所有帧。

三、提取GIF的图片帧

这里我们一帧帧读取图片,然后再将图片保存下来:

import os
import cv2 as cv
frame_path = "frames"
# 创建目录
if not os.path.exists(frame_path)
    os.mkdir(frame_path)
gif = cv.VideoCapture("test.gif")
flag = True
video_name = 1000
while flag:
    # 读取图片帧
    ret, frame = gif.read()
    # 保存图片帧
    cv.imwrite(str(video_name) + ".jpg", frame)
    video_name += 1
    if not ret:
        flag = False
复制代码

上面我们就我们实现了提取GIF的图片帧的操作。


目录
相关文章
|
8月前
|
人工智能 自然语言处理 API
图片转音乐模型来了!Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!
图片转音乐模型来了!Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!
335 1
|
3月前
|
人工智能
图片生成很好用
图片展示了一张图表,图中通过不同的颜色和数据点展示了某项技术或产品在不同维度上的表现情况。标题“AI也很好用”表明该图表可能是在说明人工智能技术的实用性和效果。不过,由于缺少具体的数据和背景信息,无法提供更详细的解读。
图片生成很好用
|
4月前
|
Python
图像序列帧恢复为GIF动图
使用Python的imageio库将图像序列帧恢复为GIF动图,支持自定义持续时间和尺寸调整。
图像序列帧恢复为GIF动图
|
3月前
图片的大小
【10月更文挑战第7天】
70 1
|
7月前
|
存储 编解码 API
如何通过编程获取桌面分辨率、操作像素点颜色、保存位图和JPG格式图片,以及图片数据的处理和存储方式
如何通过编程获取桌面分辨率、操作像素点颜色、保存位图和JPG格式图片,以及图片数据的处理和存储方式
117 0
|
8月前
|
文字识别 数据挖掘 网络安全
Python实现avif图片转jpg格式并识别图片中的文字
在做数据分析的时候有些数据是从图片上去获取的,这就需要去识别图片上的文字。Python有很多库可以很方便的实现OCR识别图片中的文字。这里介绍用EasyOCR库进行图片文字识别。easyocr是一个比较流行的库,支持超过80种语言,识别率高,速度也比较快。
144 2
|
前端开发 JavaScript
前端js实现从视频中提取图片帧
前端js实现从视频中提取图片帧
225 0
|
编解码 开发工具 Android开发
.9图片的那点事儿
.9图片的那点事儿
197 0
|
数据安全/隐私保护
生活中常用的图片去水印方法有哪些呢
有时候我们想换头像/微信背景墙了 是不是第一时间想到的是去某书逛逛,有时候看到有些博主分享的壁纸或者表情包等,忍不住的想保存下来,很多人应该还不知道如何下载吧,今天分享我的三个操作方法
【图片操作】给图片添加滤镜
现在我们都喜欢给图片添加滤镜,现在很多相机也自带了许多滤镜。我们可以在拍照的时候选择需要的滤镜。但是有时候我们需要给大量图片添加同样的滤镜,这个时候手动添加就非常麻烦了。为了方便,我们可以使用程序来帮我们完成添加滤镜的操作。
280 0

热门文章

最新文章

下一篇
开通oss服务