This repository contains the ARI2129 Computer Vision group project on image enhancement using lookup tables (LUTs) and intensity transformations. The work combines explanatory material, a walkthrough notebook, further reading, quiz resources, and an interactive Streamlit simulator.
this_project_folder/
├── README.md # Project-level documentation
├── requirements.txt # General project dependencies
├── study_notes.pdf/.docx # Study notes for the topic
├── quiz_with_rationale.pdf/.docx # Quiz questions with explanations
├── quiz_link.txt # Link to the online quiz
├── walkthrough.ipynb # Notebook walkthrough
├── ai_journal.pdf # AI usage / development journal
├── assets/ # folder where you can put .png images
| └── SampleImage.png # image used in the walkthrough.ipynb
├── simulator/ # Interactive image enhancement app
| ├── helpers/ # Folder for helper functions
| ├── app.py # Simulator app
| ├── requirements.txt # Requierements folder for the simulator
| └── README.md # Documentation for the simulator
└── further_reading/ # Supporting papers and references
└── *.pdf
The simulator has its own README in simulator/README.md with more detailed
usage notes for the Streamlit application.
The Streamlit simulator allows users to upload an image and apply image enhancement operations interactively. It supports RGB and grayscale workflows, side-by-side image comparisons, histogram visualisations, transformation curves, and downloads of processed images.
Available simulator tabs:
- Negation: invert grayscale images or selected RGB channels.
- Contrast: apply simple range stretching or percentile-based stretching.
- Piecewise: use presets or custom low, mid, and high intensity mappings.
- LUT: experiment with global LUTs, local LUTs, 1D channel LUTs, and 3D colour LUT effects.
git clone https://github.com/MatthiasMifsud/ARI2129-Group-Project.git
cd "ARI2129 Group Project"Create a virtual environment for dependancy management
# create and activate the environment
python3.11 -m venv cv_env
source cv_env/bin/activate# Create the environment
python -m venv cv_env
# Activate the environment
.\cv_env\Scripts\activateCreate and activate a virtual environment if desired, then install the project dependencies:
pip install -r requirements.txtFor only the simulator dependencies, install from the simulator folder instead:
pip install -r simulator/requirements.txtFrom the repository root:
streamlit run simulator/app.pyOr from inside the simulator directory:
cd simulator
streamlit run app.pyThe app will usually open at:
http://localhost:8501
For more detailed documentation regarding the simulator, please go see its own README.md
- Upload a JPG, JPEG, or PNG image in the simulator sidebar.
- Choose whether to process the image in RGB or grayscale mode.
- Select an enhancement tab.
- Adjust the available parameters.
- Compare the original and processed images and histograms.
- Download the processed output if needed.
The main Python dependencies used in the walkthrough.ipynb and the simulator are:
- Streamlit
- OpenCV
- NumPy
- Pillow
- Plotly
- Matplotlib
- Pandas
- Jupyter
- Watchdog
This project was created for the ARI2129 course at the University of Malta and is intended for educational use.