diff --git a/src/main/java/cz/it4i/qcmp/io/loader/RawDataLoader.java b/src/main/java/cz/it4i/qcmp/io/loader/RawDataLoader.java
index c226a72f176d5a95500ebadcfb940a80073d93c3..e6f310c1a3858a66820e38d70641d3e7a971a0a4 100644
--- a/src/main/java/cz/it4i/qcmp/io/loader/RawDataLoader.java
+++ b/src/main/java/cz/it4i/qcmp/io/loader/RawDataLoader.java
@@ -130,6 +130,28 @@ public final class RawDataLoader extends BasicLoader implements IPlaneLoader {
         return values;
     }
 
+    public int[][] loadAllPlanesTo2DArray() throws IOException {
+        final V3i imageDims = inputDataInfo.getDimensions();
+        final int planePixelCount = imageDims.getX() * imageDims.getY();
+        final int planeDataSize = planePixelCount * 2;
+        final int[][] result = new int[imageDims.getZ()][];
+
+        final byte[] planeBuffer = new byte[planeDataSize];
+        try (final FileInputStream fileStream = new FileInputStream(inputDataInfo.getFilePath())) {
+
+            for (int plane = 0; plane < imageDims.getZ(); plane++) {
+                int toRead = planeDataSize;
+                while (toRead > 0) {
+                    final int read = fileStream.read(planeBuffer, planeDataSize - toRead, toRead);
+                    assert (read > 0);
+                    toRead -= read;
+                }
+                result[plane] = TypeConverter.unsignedShortBytesToIntArray(planeBuffer);
+            }
+        }
+        return result;
+    }
+
     @Override
     public int[][] loadRowVectors(final int vectorSize, final Range<Integer> planeRange) throws IOException {
         return loadRowVectorsImplByLoadPlaneData(vectorSize, planeRange);
@@ -144,4 +166,6 @@ public final class RawDataLoader extends BasicLoader implements IPlaneLoader {
     public int[][] loadVoxels(final V3i voxelDim, final Range<Integer> planeRange) throws IOException {
         return loadVoxelsImplByLoadPlaneData(voxelDim, planeRange);
     }
+
+
 }