Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何修复”;OutOfMemoryError:java.lang.OutOfMemoryError:java堆空间;真的_Java_Python_Jython_Jes - Fatal编程技术网

“如何修复”;OutOfMemoryError:java.lang.OutOfMemoryError:java堆空间;真的

“如何修复”;OutOfMemoryError:java.lang.OutOfMemoryError:java堆空间;真的,java,python,jython,jes,Java,Python,Jython,Jes,我正在尝试用JES对图像进行灰度处理,图像大小约为3000x2000。每当我运行它时,都会给我OutOfMemoryError:java.lang.OutOfMemoryError:java堆空间 我对这种语言相当陌生,所以我不确定这是不是我的代码造成的问题 def grayscale(pic): for p in getPixels(pic): intensity = (getRed(p) + getGreen(p) + getBlue(p))/3 setColor(p, makeC

我正在尝试用JES对图像进行灰度处理,图像大小约为3000x2000。每当我运行它时,都会给我OutOfMemoryError:java.lang.OutOfMemoryError:java堆空间

我对这种语言相当陌生,所以我不确定这是不是我的代码造成的问题

def grayscale(pic):
 for p in getPixels(pic):
  intensity = (getRed(p) + getGreen(p) + getBlue(p))/3
  setColor(p, makeColor(intensity, intensity, intensity))

输出应该是图像的灰度版本

您的
getPixels()
setColor()
在某个地方有内存泄漏(调用自身或创建太多变量以存储在堆栈中)。这或你的图像是巨大的。@Matt它的大小是2953x2088。你知道我将如何优化我的函数吗?你在这里使用的是什么数据结构?当你在较小的图像上尝试它时会发生什么?@AdityaSantoso它工作得很好,给了我我所期望的。你的
getPixels()
setColor()
在某个地方有内存泄漏(调用自身或创建太多变量以存储在堆栈中)。这或您的图像太大了。@Matt其大小为2953x2088。知道我将如何优化我的函数吗?您在这里使用的是什么数据结构?在较小的图像上尝试时会发生什么?@adityasanto它工作正常,并给出了我所期望的结果。