era*_*ran 4 python opencv python-imaging-library
有没有一种有效的方法来了解图像文件的大小(高度,重量,通道),而无需将其实际加载到python中?
琐碎的方式是:
img = cv2.imread('a.jpg')
print img.shape
Run Code Online (Sandbox Code Playgroud)
但这会浪费CPU(和内存),因为我不需要图像本身.
Image.open如果需要,PIL 不会加载图像数据,如文档中所示,
这是一个懒惰的操作; 此函数标识文件,但文件保持打开状态,并且在您尝试处理数据(或调用load()方法)之前,不会从文件中读取实际图像数据.见new().
为了检查这个,ipython我跑了
im = Image.open(filename)
im.size
Run Code Online (Sandbox Code Playgroud)
在22MB的图像上,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
Run Code Online (Sandbox Code Playgroud)
用于内存使用,之前open,之前size和之后size,确认22MB图像尚未加载到内存中(ipython开始使用32538 17252).
然后这个数字随后跃升至约57,000 im.load().
| 归档时间: |
|
| 查看次数: |
3271 次 |
| 最近记录: |