Skip to content

Developed an Image Processing and Vision (IPV) project implementing diverse methods, algorithms, filters, and functions from the syllabus and beyond. Created an interactive web app using Python Streamlit to showcase and test these techniques, providing a simple platform for image enhancement and analysis.

License

Notifications You must be signed in to change notification settings

JosephJonathanFernandes/image-processing-vision-project

πŸ–ΌοΈ Image Processing Vision Project

Python Version Streamlit License: MIT

A comprehensive Image Processing and Vision web application built with Python and Streamlit. This interactive tool demonstrates various computer vision algorithms, filters, and transformations for educational and practical purposes.

πŸ“Œ Overview

This project provides an intuitive interface for applying advanced image processing techniques in real-time. Users can upload images and instantly see the effects of different algorithms, making it an excellent learning tool for computer vision concepts and a practical utility for image enhancement.

✨ Features

Image Enhancement

  • Brightness and contrast adjustment
  • Image sharpening
  • Histogram equalization
  • Various blur filters (Gaussian, Median, Bilateral)

Image Transformation

  • Rotation and flipping
  • Resize with aspect ratio control
  • Geometric transformations

Advanced Filtering

  • Gaussian blur
  • Median filtering
  • Bilateral filtering
  • Custom kernel operations

Edge Detection

  • Sobel operator
  • Canny edge detector
  • Laplacian edge detection
  • Other edge detection algorithms

Morphological Operations

  • Erosion and dilation
  • Opening and closing
  • Advanced morphological transformations

Color Space Conversions

  • RGB to Grayscale
  • HSV color space
  • LAB color space
  • Multiple color space transformations

Special Effects

  • Image inversion
  • Custom filters
  • Advanced visual effects

πŸš€ Quick Start

Prerequisites

  • Python 3.8 or higher
  • pip package manager

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/image-processing-vision-project.git
    cd image-processing-vision-project
  2. Create a virtual environment (recommended)

    python -m venv venv
    
    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
  3. Install dependencies

    pip install -r requirements.txt
  4. Run the application

    streamlit run app.py
  5. Open your browser

    The app will automatically open at http://localhost:8501

πŸ“¦ Dependencies

Core dependencies include:

  • Streamlit - Web application framework
  • OpenCV - Computer vision library
  • NumPy - Numerical computing
  • Pillow - Image processing
  • scikit-image - Advanced image algorithms

For a complete list, see requirements.txt

🎯 Usage

  1. Upload an Image: Use the sidebar to upload JPG, JPEG, or PNG files
  2. Choose Operation: Select from categorized tabs (Basic, Color, Edge Detection, etc.)
  3. Adjust Parameters: Fine-tune settings using interactive sliders and controls
  4. View Results: See real-time preview of processed images
  5. Compare: View original and processed images side-by-side

πŸ“‚ Project Structure

image-processing-vision-project/
β”œβ”€β”€ app.py                 # Main Streamlit application
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ README.md             # Project documentation
β”œβ”€β”€ LICENSE               # MIT License
β”œβ”€β”€ CONTRIBUTING.md       # Contribution guidelines
β”œβ”€β”€ SECURITY.md          # Security policy
β”œβ”€β”€ .gitignore           # Git ignore rules
β”œβ”€β”€ .gitattributes       # Git attributes
└── .env.example         # Environment variables template

🀝 Contributing

Contributions are welcome! Please read our Contributing Guidelines before submitting pull requests.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ”’ Security

This project follows security best practices:

  • No hardcoded credentials or API keys
  • Environment variables for sensitive data
  • Regular dependency updates
  • Security scanning with GitGuardian

Please report security vulnerabilities via our Security Policy.

πŸ“š Learning Outcomes

  • Practical understanding of image processing algorithms
  • Experience with computer vision techniques
  • Knowledge of OpenCV and related libraries
  • Web application development with Streamlit
  • Best practices for Python project structure

πŸ› οΈ Tech Stack

Technology Purpose
Python 3.8+ Core programming language
Streamlit Interactive web framework
OpenCV Computer vision operations
NumPy Numerical computations
Pillow Image manipulation
scikit-image Advanced image processing

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Built as a comprehensive image processing learning platform
  • Inspired by computer vision course curricula
  • Thanks to the open-source community for the amazing libraries

πŸ“§ Contact

For questions, suggestions, or issues, please open an issue on GitHub.


Made with ❀️ using Python and Streamlit

About

Developed an Image Processing and Vision (IPV) project implementing diverse methods, algorithms, filters, and functions from the syllabus and beyond. Created an interactive web app using Python Streamlit to showcase and test these techniques, providing a simple platform for image enhancement and analysis.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages