Image-Processing App is a comprehensive tool designed to streamline the process of Digital Image Processing (DIP). This project provides essential features for:
- Image Enhancement
- Image Restoration
- Morphological Processing
- Image Segmentation
- Object Recognition
- Color Processing
- Image Compression
Whether you're a researcher, developer, or enthusiast, this application aims to simplify your image processing tasks by integrating various tools in one platform.
This project offers two options for utilizing image processing tools:
- Custom Algorithms: Use image processing algorithms written by the project creator to have more control and customization.
- Pre-built OpenCV Functions: Leverage the powerful, well-optimized functions available in the OpenCV library for faster and more efficient processing.
A simple demo video showcasing the core features of the Image-Processing App is available below:
Below are an example results of image processing using the app:
- Histogram Equalization
| Before | After |
|---|---|
![]() |
![]() |
This project is built using Python, leveraging key libraries such as:
- FastAPI for building the backend API
- Uvicorn for running the asynchronous server
- Streamlit for creating an interactive frontend interface
Additional libraries for image processing and machine learning include:
- OpenCV
- NumPy
- Scikit-image
- Pillow
Recommended Python Version:
- It is highly recommended to use Python 3.10.0 for the best compatibility and performance.
Follow these steps to set up the project on your local machine:
git clone https://github.com/Andree-02/Image-Processing.git
cd <repository path>Ensure you have Python installed. Then, run the following command to install the required packages:
pip install -r requirements.txtNavigate to the project root directory and run the FastAPI backend server using Uvicorn:
cd Image-Processing
uvicorn server:app --port 8000 --reloadThis will start the API server at http://localhost:8000.
Navigate to the FE directory and run the Streamlit app:
cd FE
streamlit run Home.pyThis will open a web-based user interface for interacting with the image processing tools.
Once both the backend and frontend are running:
- Open your web browser and go to http://localhost:8501.
- Upload an image through the interface.
- Apply various processing techniques, such as enhancement, segmentation, or object recognition.
We welcome contributions to improve this project! Please follow the guidelines:
- Fork the repository.
- Create a new branch.
- Commit your changes.
- Open a pull request.
For any inquiries, feel free to reach out:
- Project Maintainer: Andree-02
- Email: trantientoan.wk@gmail.com
Special thanks to the open-source community for providing invaluable tools and resources.


