This repository contains the implementation of Exercise 4 from the course 67315 - Programming Workshop in C & C++ at The Hebrew University Of Jerusalem (HUJI).
The project focuses on building a simple image classification system using a Multi-Layer Perceptron (MLP) neural network implemented in C++.
The project received a final grade of 105 (out of 105).
CPP-Image-Processing/
├── Activation.cpp # Implementation of activation functions
├── Activation.h # Declarations for activation functions
├── Dense.cpp # Implementation of Dense layer
├── Dense.h # Declarations for Dense layer
├── MlpNetwork.cpp # Implementation of the MLP network
├── MlpNetwork.h # Declarations for the MLP network
├── Matrix.cpp # Implementation of the Matrix class
├── Matrix.h # Declarations for the Matrix class
├── main.cpp # Entry point of the application
├── Makefile # Build configuration
├── plot_img.py # Python script for visualizing images
├── images/ # Directory containing input images
├── parameters/ # Directory containing model parameters
├── LICENSE # MIT License
└── README.md # Project documentation
- C++ compiler supporting C++11 or later (e.g.,
g++
) - Python 3.x (for running
plot_img.py
) - Python packages:
matplotlib
,numpy
- Clone the repository:
git clone https://github.com/OrF8/CPP-Image-Processing.git cd CPP-Image-Processing
- Compile the project:
This will generate an executable named
make
mlp_classifier
.
./mlp_classifier
The application will process the images located in the images/
directory using the MLP network with parameters from the parameters/
directory.
To visualize an image using the provided Python script:
python3 plot_img.py path_to_image
Replace path_to_image
with the path to the image you wish to visualize.
This project is licensed under the MIT License – see the LICENSE file for details.