在不使用PIL的情况下将静止图像gif读入python?

时间:2016-10-02 06:09:56

标签: python python-2.7 opencv image-processing gif

我正在编写一个脚本来解构图像,其中一个关键组件是脚本尽可能轻量级。因此,我试图尽可能少地使用进口产品:

import sys, os, re ,fnmatch
import numpy as np
import cv2
import matplotlib.pyplot as plt

就是这样。问题是,我正在测试的图像之一是GIF:

enter image description here 哪个OpenCV不支持,尽管搜索了一段时间我似乎找不到在纯python中读取GIF(或将它们转换为png)的方法。

我能找到的每个解决方案都使用Pillow或PIL,这两种方法都很重要,而且甚至OpenCV都在推动它。 GIF是静止图像。这里有一个简单的解决方案吗?

1 个答案:

答案 0 :(得分:0)

也许对您来说有点晚了,但是现在有一个名为gif2numpy的库,可以将gif图像转换为numpy图像,以便您可以将它们与opencv,matplotlib,scipy等一起使用。它不依赖于PIL或枕头,而仅依赖于opencv-python,numpy和kaitaistruct。 它是这样的:

from __future__ import print_function
import gif2numpy
import cv2

images = "Images/audrey.gif", "Images/hopper.gif", "Images/testcolors.gif"
for image in images:
    np_images, extensions, image_specs = gif2numpy.convert(image)
    print("type of image:", image, type(np_images[0]))
    cv2.imshow("np_image", np_images[0])
    cv2.waitKey()
    cv2.destroyWindow("np_image")

使用

安装
pip install gif2numpy

或直接从github https://github.com/bunkahle/gif2numpy

获取