首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python内存错误(Unix与Windows)

问Python内存错误(Unix与Windows)
EN

Stack Overflow用户
提问于 2011-11-25 17:41:02
回答 1查看 1.3K关注 0票数 1

我正在开发一个应用程序,加载大的JPEG2000图像,并将它们转换为TIF。然后,它提取像素数据,并进行一些处理。它完美地工作,除了在一种情况下:

当我加载最大的图像并提取数据(10956x10956数组)时,程序崩溃,但它只在Windows上崩溃,而不是在Linux上崩溃。(我想要可移植的应用程序)。

我检测到了这个问题,这是因为在将20x20插值到图像采样时出现了内存错误。

代码语言:javascript
复制
f=RectBivariateSpline(x,y,Sun_angles)

xnew = numpy.linspace(x.min(),x.max(),rows)

ynew = numpy.linspace(y.min(),y.max(),columns)

Sun_angles_new = f(xnew, ynew) #here it crashes

我也尝试了interp2d和mapcoordinates,我得到了同样的结果。

Python应该是完全可移植的,但我的印象是针对Unix系统进行了优化(另请参阅:Running python on a Windows machine vs Linux)

注意:我在两台不同的计算机上运行该程序,但是使用相同的处理器和RAM。

因此..。可能的原因是什么?有没有其他内存消耗更少的插值方法?

注:一种解决方案是将图像分成平铺和插值。

EN

回答 1

Stack Overflow用户

发布于 2011-11-25 18:42:49

您应该在windows下检查应用程序的内存使用情况。考虑到原始图像的大小将为~360MB (假设为24位图像),如果您为每个像素分配内存,这将成倍增加,并且很容易超过32位地址空间的内存要求( windows应用程序的内存限制为~2 2GB)

在linux上,您可能运行的是64位linux,它运行的是64位版本的python。对于桌面应用程序来说,那里的限制几乎是无法达到的(在地址空间用完之前,交换空间就会用完)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8267142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档