A graphical desktop application for interactive image processing with configurable kernels. Supports sharpening, blurring, segmentation, boundary extraction, and feature extraction through multiple techniques -- all through an intuitive point-and-click interface.
- Configurable Kernel Size: Set custom kernel dimensions for each operation
- Multiple Filtering Techniques: Sharpening, blurring with various kernel types
- Image Segmentation: Threshold-based and region-based segmentation
- Boundary Extraction: Edge detection and contour extraction
- Feature Extraction: Extract meaningful image descriptors
- Interactive GUI: Point-and-click interface for all operations
- Batch Support: Process images from a dataset directory
- Visual Results: Side-by-side original and processed image display
Enhances edges and fine details in images using convolution kernels:
| Kernel Type | Description | Use Case |
|---|---|---|
| Laplacian | Second-derivative based edge enhancement | Detail enhancement |
| Unsharp Masking | Subtracts blurred version from original | Photo sharpening |
| High-Boost | Amplified high-frequency components | Medical imaging |
Reduces noise and detail through various averaging techniques:
| Technique | Kernel | Strengths |
|---|---|---|
| Mean Filter | Uniform averaging | Simple noise reduction |
| Gaussian Blur | Gaussian-weighted averaging | Natural-looking blur |
| Median Filter | Median of neighborhood | Salt-and-pepper noise removal |
| Bilateral Filter | Spatial + intensity weighting | Edge-preserving smoothing |
Divides images into meaningful regions:
- Threshold-based: Otsu's method, adaptive thresholding
- Region-based: Watershed, region growing
- Color-based: K-means clustering in color space
Detects object boundaries and contours:
- Sobel Operator: Gradient-based edge detection
- Canny Edge Detector: Multi-stage optimal edge detection
- Laplacian: Second-derivative zero-crossing detection
Computes meaningful image descriptors:
- Histogram Features: Mean, variance, skewness, kurtosis
- Texture Features: GLCM-based (contrast, correlation, energy, homogeneity)
- Shape Features: Area, perimeter, circularity
+------------------------------------------+
| GUI Layer (Tkinter) |
| - Image selector, kernel config |
| - Technique buttons, results panel |
+------------------------------------------+
| Processing Engine (OpenCV) |
| +----------+ +-----------+ |
| | Sharpen | | Blur | |
| | Segment | | Boundary | |
| | Features | | Transform | |
| +----------+ +-----------+ |
+------------------------------------------+
| Image I/O & Display |
| - Load from Data folder |
| - Save processed results |
+------------------------------------------+
| Category | Technology |
|---|---|
| Language | Python 3.8+ |
| Image Processing | OpenCV (cv2) |
| Numerical Operations | NumPy |
| GUI | Tkinter |
| Notebook | Jupyter |
- Python 3.8 or higher
git clone https://github.com/nntrivi2001/Image-Processing-GUI.git
cd Image-Processing-GUI
pip install opencv-python numpy matplotlib- Place your dataset in the
Datafolder - Run the application:
python "Image Processing with GUI/image_processing.py" - Set the kernel size when prompted (e.g., 3x3, 5x5, 7x7)
- Select an image to process from the file dialog
- Click the desired operation button to apply the technique
- View the result -- processed images are saved to the project folder
Image-Processing-GUI/
|-- Image Processing with GUI/
| |-- image_processing.py # Main application with all processing techniques
|-- Data/ # Input image dataset (user-provided)
|-- image.png # Application screenshot
|-- .gitignore
|-- .gitattributes
|-- README.md
| Operation | Recommended Size | Notes |
|---|---|---|
| Gaussian Blur | 3x3, 5x5 | Larger = more blur |
| Median Filter | 3x3, 5x5 | Odd numbers only |
| Sharpening | 3x3 | Fixed size for standard kernels |
| Morphological Ops | 3x3, 5x5 | Depends on feature size |
| Edge Detection | 3x3 | Sobel, Prewitt fixed size |
