我正在编写一个脚本来解构图像,其中一个关键组件是脚本尽可能轻量级。因此,我试图尽可能少地使用进口产品:
import sys, os, re ,fnmatch
import numpy as np
import cv2
import matplotlib.pyplot as plt
就是这样。问题是,我正在测试的图像之一是GIF:
哪个OpenCV不支持,尽管搜索了一段时间我似乎找不到在纯python中读取GIF(或将它们转换为png)的方法。
我能找到的每个解决方案都使用Pillow或PIL,这两种方法都很重要,而且甚至OpenCV都在推动它。 GIF是静止图像。这里有一个简单的解决方案吗?
答案 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
获取