有没有一种高效的方法可以在不将图像加载到Python中的情况下知道图像文件的大小(高度、宽度、通道)?
一个简单的方法是:
img = cv2.imread('a.jpg')
print img.shape
但这会浪费CPU(和内存),因为我不需要图片本身。
有没有一种高效的方法可以在不将图像加载到Python中的情况下知道图像文件的大小(高度、宽度、通道)?
一个简单的方法是:
img = cv2.imread('a.jpg')
print img.shape
但这会浪费CPU(和内存),因为我不需要图片本身。
im = Image.open(filename)
im.size
ps -av
报告如下:33714 17772 0.8 /usr/bin/python2 /usr/bin/ipython2
34506 18220 0.8 /usr/bin/python2 /usr/bin/ipython2
34506 18220 0.8 /usr/bin/python2 /usr/bin/ipython2
对于内存使用情况,在open
之前,在size
之前和之后,确认22MB的图像没有被加载到内存中(ipython
最初使用32538 17252
)。在执行im.load()
之后,该数字跳升至约57k。