Skip to content

Latest commit

 

History

History
195 lines (141 loc) · 6.32 KB

File metadata and controls

195 lines (141 loc) · 6.32 KB

🖼️ Image Processing Vision Project

Python Version Streamlit License: MIT

Deployed at https://josephjonathanfernandes-image-processing-vision-proj-app-ib9uay.streamlit.app/

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

Core Application Features

  • Sequential Multi-Effect Processing: Build complex effects by chaining OpenCV algorithms. Each effect stacks seamlessly onto the last.
  • Robust Undo / Redo Tracking: Cycle backwards and forwards through your detailed operation history, all the way back to your original unedited image.
  • Automated Magic Presets: One-click professional filters (e.g., Portrait Enhancement, Vintage Film) dynamically execute chained algorithms on your image instantly.
  • Interactive Comparison Engine: Select "Show Comparison View" to natively display your original and newly processed components running side-by-side.

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/JosephJonathanFernandes/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. Apply Quick Presets (Optional): Automatically apply chained effects with a single click in the Quick Presets accordion
  3. Choose Operation: Select from categorized tabs (Basic Operations, Color Transformations, Edge Detection, Morphological Operations, Special Effects)
  4. Adjust Parameters: Fine-tune specific algorithm settings using interactive dials/sliders
  5. Stack your Effects: Click "✅ Apply This Result" to lock in the effect and stack a new algorithm on top
  6. Compare: View original and processed images side-by-side using the Comparison checkbox

📂 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