UtilsImage

namespace utilsimages

Functions

static inline vector<vector<double>> read_images(string full_path, int num_images, int img_size)

Read CIFAR-10 image data and return multiple images as normalized vectors.

Parameters:
  • full_path – Path to binary file.

  • num_images – Number of images to read.

  • img_size – Size of one image (in bytes).

Returns:

Vector of images, each image stored as a flattened [R,G,B] channel vector.

static inline void display_image(vector<double> allPixels, int imageSize, bool pixelState)

Display pixel values of a single image in channel-wise 32x32 format.

Parameters:
  • allPixels – Flattened vector of one image (3 * 32 * 32).

  • imageSize – Size of image vector.

  • pixelState – If true, prints pixel values channel by channel.

static inline void clear_images(vector<vector<double>> imagesData, int numImages)

Clear image data from memory.

Parameters:
  • imagesData – Vector of images.

  • numImages – Number of images (unused, kept for consistency).

static inline unsigned char **read_mnist_images(string full_path, int &number_of_images, int &image_size)

Read MNIST images from a binary file into a 2D unsigned char array.

Parameters:
  • full_path – Path to MNIST image file (e.g., train-images.idx3-ubyte).

  • number_of_images – Output parameter: number of images read.

  • image_size – Output parameter: number of pixels per image (rows × cols).

Throws:

runtime_error – If file cannot be opened or is invalid.

Returns:

Pointer to 2D array of image data [num_images][image_size].

static inline vector<double> read_single_mnist_image(unsigned char *imageData, int imageSize)

Convert a single MNIST image to a normalized vector of doubles.

Normalization: (pixel / 255.0 - mean) / std. Uses mean = 0.1307, std = 0.3081.

Parameters:
  • imageData – Pointer to raw image data (unsigned char array).

  • imageSize – Number of pixels (28 × 28).

Returns:

Normalized image as a vector<double>.

static inline void display_mnist_image(unsigned char *imageData, int imageSize, bool pixelState)

Display a single MNIST image in 28×28 format.

Parameters:
  • imageData – Pointer to raw image data (unsigned char array).

  • imageSize – Number of pixels (28 × 28).

  • pixelState – If true, prints pixel intensity values. If false, prints ASCII visualization (“X” or “.”).

static inline void clear_mnist_images(unsigned char **mnistData, int numImages)

Free memory allocated for MNIST image dataset.

Parameters:
  • mnistData – Pointer to 2D array of MNIST images.

  • numImages – Number of images to free.