【发布时间】:2011-10-14 01:31:04
【问题描述】:
我正在使用 PIL(python 图像库)进行一些图像处理,特别是我正在将图像拼接在一起。
我的代码似乎适用于少量图像,但有时我会收到MemoryError。
对我来说特别奇怪的部分是我没有对位图像进行操作,它全部适用于 10kb 以下的
我给Image.resize打了很多电话,但我很惊讶会出现重大问题。
这是堆栈轨迹:
Traceback (most recent call last):
File "test.py", line 15, in <module>
pprint(scale_matrix_down((90,90), [inpt]))
File "/Users/jeremykarmel/Desktop/Python/merger.py", line 105, in scale_matrix_down
return [shrinkRow(row, row_width_overflow(row)) for row in matrix]
File "/Users/jeremykarmel/Desktop/Python/merger.py", line 103, in shrinkRow
rest = [shrinkIm(im, pixels_per_im) for im in row[remaining_pixels:]]
File "/Users/jeremykarmel/Desktop/Python/merger.py", line 110, in shrinkIm
return im.resize((im.size[0] - num_pix, im.size[1] - num_pix))
File "/Library/Python/2.7/site-packages/PIL/Image.py", line 1302, in resize
im = self.im.resize(size, resample)
MemoryError
请注意,图片均小于 90x90 像素。
我陷入了死胡同,真的不知道如何进行。我该怎么做才能释放内存?我应该打电话给 del 运营商还是我可以做一些更简单的事情? 提前感谢您的帮助!
【问题讨论】:
-
检查以确保您没有调整到负尺寸。当你运行进程时观察你的内存使用情况,看看内存在死前是否在增加。
-
谢谢温斯顿,你完全正确!
标签: python memory python-imaging-library