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.
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.
- Brightness and contrast adjustment
- Image sharpening
- Histogram equalization
- Various blur filters (Gaussian, Median, Bilateral)
- Rotation and flipping
- Resize with aspect ratio control
- Geometric transformations
- Gaussian blur
- Median filtering
- Bilateral filtering
- Custom kernel operations
- Sobel operator
- Canny edge detector
- Laplacian edge detection
- Other edge detection algorithms
- Erosion and dilation
- Opening and closing
- Advanced morphological transformations
- RGB to Grayscale
- HSV color space
- LAB color space
- Multiple color space transformations
- Image inversion
- Custom filters
- Advanced visual effects
- Python 3.8 or higher
- pip package manager
-
Clone the repository
git clone https://github.com/yourusername/image-processing-vision-project.git cd image-processing-vision-project -
Create a virtual environment (recommended)
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Run the application
streamlit run app.py
-
Open your browser
The app will automatically open at
http://localhost:8501
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
- Upload an Image: Use the sidebar to upload JPG, JPEG, or PNG files
- Choose Operation: Select from categorized tabs (Basic, Color, Edge Detection, etc.)
- Adjust Parameters: Fine-tune settings using interactive sliders and controls
- View Results: See real-time preview of processed images
- Compare: View original and processed images side-by-side
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
Contributions are welcome! Please read our Contributing Guidelines before submitting pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
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.
- 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
| 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 |
This project is licensed under the MIT License - see the LICENSE file for details.
- Built as a comprehensive image processing learning platform
- Inspired by computer vision course curricula
- Thanks to the open-source community for the amazing libraries
For questions, suggestions, or issues, please open an issue on GitHub.
Made with β€οΈ using Python and Streamlit