Sketch_AI / Main.md
Wiuhh's picture
Rename replit.md to Main.md
c870405 verified
# 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