Image Processing Application (MATLAB).
Image Processing Application (MATLAB).
Image Processing Application
This MATLAB-based image processing application provides a robust platform for real-time image manipulation and analysis. Built entirely from scratch without relying on MATLAB’s built-in image processing functions, it features a custom graphical user interface (GUI) and a comprehensive set of algorithms for image enhancement, filtering, and feature extraction.
Features
- Custom GUI: Intuitive interface for loading, processing, and saving images, with side-by-side display of original and processed images alongside their histograms.
- Point Operations: Includes contrast adjustment, histogram equalization, additive offset, multiplicative scaling, image inversion, and thresholding for precise pixel-level transformations.
- Noise Addition: Implements Gaussian and Salt-and-Pepper noise for testing image robustness.
- Frequency-Domain Filters: Supports ideal and Butterworth low-pass/high-pass filters, band-pass, band-reject, homomorphic, and local spectral filters for advanced frequency-based processing.
- Spatial Filters: Offers linear (3x3 and 5x5 mean, Gaussian, pyramidal, conical) and non-linear (median) filters for smoothing and noise reduction.
- Edge Detection: Includes Gradient, Sobel, Prewitt, Robert, Laplacian, Canny, Kirsch, and Marr-Hildreth methods for detecting image edges and features.
- Morphological Operations: Provides erosion, dilatation, opening, closing, and internal/external/morphological gradients for shape analysis and segmentation.
- Interest Point Detection: Implements SUSAN and Harris detectors for identifying key image features.
Getting Started
Prerequisites
- MATLAB
- No additional toolboxes required, as all functions are custom-built
Installation
Clone the repository:
1
git clone https://github.com/ammarlouah/image-processing-app.git
- Open MATLAB and navigate to the project directory.
Run the main script:
1
ImageProcessingApp
Usage
- Launch the application by running the
.m
file in MATLAB. - Use the File menu to open an image (supports
.jpg
,.png
, etc.). - Select operations from the menus (e.g., Point Operations, Noise, Filters, Morphology) to process the image.
- View the original and processed images with their histograms in the GUI.
- Save the processed image via the File > Save option.
Screenshot
Project Structure
ImageProcessingApp.m
: Main script containing the GUI and all image processing functions.- No external dependencies or libraries used—everything is implemented from scratch.
Notes
- The application is designed for grayscale and RGB images, with automatic handling of image formats.
- All algorithms are optimized for performance while maintaining accuracy.
- The code is fully commented for clarity and maintainability.
License
This project is licensed under the MIT License.
Contact
For questions or contributions, reach out via GitHub Issues or email me at ammarlouah9@gmail.com
This post is licensed under CC BY 4.0 by the author.