A powerful and flexible web application for image denoising using wavelet transforms, featuring multiple thresholding methods, color space processing, and comparative analysis capabilities.
Wavelet transforms are powerful tools for image processing, particularly in denoising applications. They work by:
- Decomposition: Breaking down the image into different frequency components while preserving spatial information
- Thresholding: Removing noise by modifying wavelet coefficients
- Reconstruction: Rebuilding the image from the modified coefficients
This project implements three sophisticated thresholding methods:
- VisuShrink: Universal threshold based on image size
- BayesShrink: Adaptive threshold using Bayesian estimation
- SureShrink: Stein's Unbiased Risk Estimate for optimal threshold selection
For color images, processing in YCbCr color space often yields better results than RGB:
- Y (Luma): Carries brightness information
- Cb, Cr (Chroma): Carry color information
- Allows for different denoising strengths for brightness and color components
- Clone the repository:
git clone https://github.com/Abhinavexists/Wavelet-Transforms.git
cd wavelet-transforms- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Start the Flask application:
python app.py-
Open your browser and navigate to
http://localhost:5000 -
Use the interface to:
- Upload images via drag-and-drop or file selection
- Adjust denoising parameters
- Compare different methods
- Download processed images
-
Wavelet Type: Choose from various wavelet families
bior4.4(Default): Biorthogonal 4.4haar: Haar waveletdb4: Daubechies 4sym4: Symlets 4coif3: Coiflets 3
-
Thresholding Method:
BayesShrink(Default): Adaptive thresholdVisuShrink: Universal thresholdSureShrink: SURE-based threshold
-
Decomposition Level: 1-4 (auto-selected by default)
-
Color Space: RGB or YCbCr
-
Noise Addition: Optional noise simulation
wavelet-transforms/
├── app.py # Flask application
├── transform.py # Wavelet transform implementation
├── static/
│ ├── css/ # Stylesheets
│ └── js/ # JavaScript files
├── templates/ # HTML templates
├── uploads/ # Temporary image storage
└── output/ # Processed images
- Python 3.9+
- NumPy
- PyWavelets
- scikit-image
- OpenCV
- Flask
- Additional requirements in
requirements.txt
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.


