Skip to content

nntrivi2001/Image-Processing-GUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image Processing GUI

Python OpenCV NumPy Tkinter

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.

Features

  • 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

Image Processing Techniques

Sharpening

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

Blurring (Smoothing)

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

Segmentation

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

Boundary Extraction

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

Feature Extraction

Computes meaningful image descriptors:

  • Histogram Features: Mean, variance, skewness, kurtosis
  • Texture Features: GLCM-based (contrast, correlation, energy, homogeneity)
  • Shape Features: Area, perimeter, circularity

Architecture

+------------------------------------------+
|           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                |
+------------------------------------------+

Tech Stack

Category Technology
Language Python 3.8+
Image Processing OpenCV (cv2)
Numerical Operations NumPy
GUI Tkinter
Notebook Jupyter

Getting Started

Prerequisites

  • Python 3.8 or higher

Installation

git clone https://github.com/nntrivi2001/Image-Processing-GUI.git
cd Image-Processing-GUI
pip install opencv-python numpy matplotlib

Usage

  1. Place your dataset in the Data folder
  2. Run the application:
    python "Image Processing with GUI/image_processing.py"
  3. Set the kernel size when prompted (e.g., 3x3, 5x5, 7x7)
  4. Select an image to process from the file dialog
  5. Click the desired operation button to apply the technique
  6. View the result -- processed images are saved to the project folder

Project Structure

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

Screenshots

Application Screenshot

Kernel Reference

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

About

Sharpen, Blurred, Segmentation, Boundary Extraction, Feature Extraction by many techniques.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages