# Image to Sketch Converter ## Overview This is a Python-based image processing application that converts regular photographs and images into pencil sketch style drawings. The application uses computer vision techniques to transform color images into artistic sketch representations, providing a simple command-line interface for image conversion operations. ## Recent Changes ### September 29, 2025 - Created complete image-to-sketch conversion program (`image_to_sketch.py`) - Implemented core algorithms: grayscale conversion, image inversion, Gaussian blur, and color-dodge blending - Added comprehensive command-line interface with help system - Included optional sketch enhancement with adaptive thresholding - **NEW: Built beautiful web interface with Flask backend** - Adapted stunning dark theme design for sketch conversion - Drag & drop file upload with animated gradient borders - Real-time image processing with visual feedback - Side-by-side original vs sketch comparison - Adjustable settings (blur intensity, enhanced lines) - Secure file handling and automatic cleanup - Successfully tested complete web application and verified output quality - Configured workflow for easy web server deployment ## User Preferences Preferred communication style: Simple, everyday language. ## System Architecture ### Core Processing Architecture - **Object-oriented design**: Built around the `ImageToSketch` class that encapsulates all conversion logic and image processing operations - **Pipeline-based processing**: Uses a multi-step conversion process including grayscale conversion and image inversion as the foundation for sketch creation - **File validation system**: Implements robust input validation to ensure image files exist and are in supported formats before processing ### Image Processing Framework - **OpenCV integration**: Primary image processing library for loading, manipulating, and converting images with support for multiple image formats - **PIL/Pillow support**: Secondary image handling capability for additional format compatibility and image operations - **NumPy arrays**: Underlying data structure for efficient image pixel manipulation and mathematical operations ### Input/Output Handling - **Multi-format support**: Handles common image formats including JPG, PNG, BMP, TIFF, and WebP files - **Command-line interface**: Uses argparse for parsing command-line arguments and user input processing - **Error handling**: Comprehensive validation for file existence, format compatibility, and image loading failures ### Processing Pipeline - **Grayscale conversion**: First step converts color images to grayscale using OpenCV's color space transformation - **Image inversion**: Creates negative images by inverting pixel values (255 - pixel_value) as part of the sketch effect - **Extensible design**: Architecture allows for easy addition of additional processing steps in the conversion pipeline ## External Dependencies ### Core Libraries - **OpenCV (cv2)**: Primary computer vision library for image loading, processing, and format handling - **NumPy**: Numerical computing library for efficient array operations and pixel manipulation - **PIL/Pillow**: Python Imaging Library for additional image processing capabilities and format support ### System Dependencies - **Python 3**: Requires Python 3.x runtime environment - **argparse**: Built-in Python module for command-line argument parsing - **os and sys**: Standard library modules for file system operations and system interaction ### File System Requirements - **Input validation**: Depends on local file system for image file validation and loading - **Format detection**: Uses file extensions and OpenCV's built-in format detection for image compatibility