An interactive MATLAB GUI application for restoring old or damaged photographs — removing scratches, reducing noise, sharpening detail, and correcting faded colors and contrast, all through a simple, non-expert-friendly interface with real-time feedback.
Old and damaged photographs commonly suffer from scratches, noise, faded colors, and low contrast. Manual restoration is slow and requires expert skill, and most existing tools are either too limited or too complex for everyday users.
This project addresses that gap with a GUI-based image processing system built in MATLAB that provides:
- Interactive editing with live preview
- Real-time status updates and method descriptions
- Both automatic and manual repair options
- A control panel simple enough for non-experts to use
| Feature | Description |
|---|---|
| Scratch Removal | Automatically detects and repairs fine scratches using top-hat filtering and region-fill inpainting |
| Noise Reduction | Reduces sensor/scan noise via an adjustable slider |
| Sharpening | Enhances edge detail and sharpness with a tunable slider |
| Contrast Adjustment | Corrects low-contrast, washed-out images |
| Color Boost | Increases saturation by adjusting the image in HSV color space |
| Dehazing | Improves clarity using adaptive histogram equalization and contrast stretching |
Enhancements are applied selectively based on which checkboxes the user ticks, and the enhanced image plus status updates are displayed immediately.
The restoration pipeline follows these stages:
Image Acquisition → Scratch Removal → Denoising → Sharpening
→ Contrast Adjustment → Color Boost → Dehazing
→ Result Display and Output
- Convert the image to grayscale
- Apply top-hat filtering to isolate fine, bright line artifacts (scratches)
- Clean and binarize the result to generate a scratch mask
- Apply
regionfillto each color channel to reconstruct the masked (scratched) areas - Display the repaired image
- A dropdown menu lets users choose an enhancement method, with a description shown via a
describeMethodcallback - Sliders for sharpness, contrast, and noise reduction, each with a defined range and default value, allow fine-tuned control
- Checkboxes toggle optional enhancements (Color Boost, Dehazing) independently
The GUI includes:
- Image axes for before/after comparison
- Sliders for sharpness, contrast, and noise reduction (average-level defaults)
- Checkboxes for optional enhancements
- Load, Reset, and Save buttons for I/O
- Real-time status/description panel
Example outputs:
- Increased smoothness with autofilled scratches
- Increased sharpness and contrast
- Increased color boost and noise reduction
- MATLAB (R2020a or later recommended)
- Image Processing Toolbox
% From the MATLAB command window, in the project directory:
imageRestorationApp(Replace imageRestorationApp with the actual entry-point script/function filename in this repo.)
- Launch the app and load an image (old/damaged photo)
- Select an enhancement method from the dropdown, or tick the desired checkboxes (Color Boost, Dehazing)
- Adjust the Sharpness, Contrast, and Noise Reduction sliders as needed
- View the restored result in real time
- Save the output image
- MATLAB — core application and GUI (
uifigure, image axes, sliders, checkboxes, buttons) - Image Processing Toolbox — top-hat filtering,
regionfill, adaptive histogram equalization, HSV color adjustment
Using a MATLAB GUI, this project delivers a straightforward yet effective image restoration tool. With just a few clicks, users can improve images by adjusting contrast, sharpening, reducing noise, and removing scratches — making complex image processing tasks accessible to everyone through a user-friendly interface.
- P. K. Das and A. M. Sinha, "Image Restoration Techniques: A Survey," IJSRP, vol. 11, no. 1, pp. 1–7, 2021.
- P. Kumar and A. Kumar, "A Brief Review on Image Restoration Techniques," IJERT, vol. 9, no. 7, pp. 498–501, 2020.
- M. A. Raj and V. M. Babu, "Image Restoration using Deep Learning Techniques," IJEAT, vol. 11, no. 3, pp. 63–67, 2022.