diff --git a/src/main/java/cz/it4i/qcmp/data/HyperStackDimensions.java b/src/main/java/cz/it4i/qcmp/data/HyperStackDimensions.java
new file mode 100644
index 0000000000000000000000000000000000000000..652486dd75fcb9a03e71f821241549741b820a2e
--- /dev/null
+++ b/src/main/java/cz/it4i/qcmp/data/HyperStackDimensions.java
@@ -0,0 +1,85 @@
+package cz.it4i.qcmp.data;
+
+/**
+ * Class representing dimensions of the Stack or Hyperstack.
+ * This terminology is taken from the ImageJ.
+ */
+public class HyperStackDimensions {
+    private final int width;
+    private final int height;
+    private final int sliceCount;
+    private final int numberOfTimepoints;
+
+
+    /**
+     * Create HyperStackDimensions.
+     *
+     * @param width              Width of the slice.
+     * @param height             Height of the slice.
+     * @param sliceCount         Slice count in the stack.
+     * @param numberOfTimepoints Number of stack timepoints.
+     */
+    public HyperStackDimensions(final int width, final int height, final int sliceCount, final int numberOfTimepoints) {
+        this.width = width;
+        this.height = height;
+        this.sliceCount = sliceCount;
+        this.numberOfTimepoints = numberOfTimepoints;
+    }
+
+    /**
+     * Create HyperStackDimensions for single timepoint.
+     *
+     * @param width      Width of the slice.
+     * @param height     Height of the slice.
+     * @param sliceCount Slice count in the stack.
+     */
+    public HyperStackDimensions(final int width, final int height, final int sliceCount) {
+        this(width, height, sliceCount, 1);
+    }
+
+    /**
+     * Create HyperStackDimensions for single slice and single timepoint.
+     *
+     * @param width  Width of the slice.
+     * @param height Height of the slice.
+     */
+    public HyperStackDimensions(final int width, final int height) {
+        this(width, height, 1, 1);
+    }
+
+    /**
+     * Get single slice width. (X)
+     *
+     * @return Slice width.
+     */
+    public final int getWidth() {
+        return width;
+    }
+
+    /**
+     * Get single slice height. (Y)
+     *
+     * @return Slice height.
+     */
+    public final int getHeight() {
+        return height;
+    }
+
+    /**
+     * Get slice count. (Z, Plane Count)
+     *
+     * @return Slice count.
+     */
+    public final int getSliceCount() {
+        return sliceCount;
+    }
+
+    /**
+     * Get number of timepoints of the stack.
+     *
+     * @return Timepoint count.
+     */
+    public final int getNumberOfTimepoints() {
+        return numberOfTimepoints;
+    }
+}