У меня есть много томов, хранящихся в виде .mha
файлов, которые я обычно открываю в Matlab с помощью функции mha_read_volume
, которую вы можете найти на странице Matlab Central. Моя проблема в том, что эта функция случайно выдает сообщение об ошибке нехватки памяти, связанное с распаковкой этих изображений с помощью какой-либо библиотеки Java.
Виновник, кажется, лежит здесь:
function M = zlib_decompress(Z,DataType)
import com.mathworks.mlwidgets.io.InterruptibleStreamCopier
a=java.io.ByteArrayInputStream(Z);
b=java.util.zip.InflaterInputStream(a);
isc = InterruptibleStreamCopier.getInterruptibleStreamCopier;
c = java.io.ByteArrayOutputStream;
isc.copyStream(b,c);
M=typecast(c.toByteArray,DataType);
Я подозреваю утечку памяти, но понятия не имею, что делать с этим кодом, чтобы устранить проблему.
Вот сообщение об ошибке:
??? Java exception occurred:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.io.ByteArrayOutputStream.toByteArray(Unknown Source)
Error in ==> mha_read_volume>zlib_decompress at 87
M=typecast(c.toByteArray,DataType);
Error in ==> mha_read_volume at 74
V = zlib_decompress(Z,DataType);