Technologies used: Python, HTML, CSS, Jinja, Flask, Werkzeug, dotenv, JavaScript
This project is an image processing application designed to demonstrate fundamental concepts of digital image processing, including the RGB color model, image manipulation techniques, and machine learning classification with KNN (K-nearest neighbors). The application is split into several parts, covering the basics of how images are stored and manipulated in code, image processing methods, simulation of monetized and premium app features, and the implementation of a KNN classifier to predict image labels.
Additionally, I voluntarily built a GUI for this Image Processing application allowing the user to interact with and use the various computer vision techniques imbedded within the app's functionalities. I have also built a CLI for this application if you prefer to look into that instead. The code for both of these files is publicly available. The data science specific functionalities of this project cannot be shared due to university policy, though it is available for viewing upon request. If you would like to interact with the deployable GUI please use this link:
The data science specific functionalities of this project cannot be shared due to university policy, though it is available for viewing upon request.
After launching the app, the UI will provide options to select and process images with the implemented features. You can choose to apply various filters, adjust brightness, rotate images, and more. Additionally, the premium features and the KNN classifier can be accessed through the UI, offering an intuitive way to interact with the application's functionalities.
Python 3
Pip (Python package installer)
NumPy
Pillow (PIL)
The project is divided into several key parts:
Part 1: Implementation of the RGBImage class to handle basic image storage and manipulation.
Part 2: Introduction of image processing methods in the ImageProcessingTemplate class.
Part 3: Extension of Part 2 to simulate a monetized app with additional costs for processing methods.
Part 4: Further extension to simulate a premium app, adding new methods and a fixed upfront cost.
Part 5: Implementation of a KNN classifier to predict image labels based on provided datasets.
The UI component is developed as a separate Python file, providing an interface to interact with the core functionalities implemented in the project.