This repository contains my assignment solutions for the Digital Image Processing course (M2608.001000_001) offered by Seoul National University (Fall 2020).
The algorithms for the assignments are implemented using MATLAB.
Demosaicing is the process of reconstructing a full color image from the incomplete color samples output from an image sensor overlaid with a color filter array (CFA).
Edge enhancement is an image processing technique that enhances the edge contrast of an image or video in an attempt to improve its acutance (apparent sharpness). I used box filters and a Gaussian filter for edge enhancement.
A bilateral filter is a non-linear, edge-preserving, and noise-reducing smoothing filter for images. It replaces the intensity of each pixel with a weighted average of intensity values from nearby pixels. I used it for denoising.
A Wiener filter is a filter used to produce an estimate of a desired or target random process by linear time-invariant (LTI) filtering of an observed noisy process, assuming known stationary signal and noise spectra, and additive noise. I used it for denoising and deblurring.
Nonlinear processing produces output that is not a linear function of its input. Here, I used histogram equalization for contrast adjustment and median filter for denoising.
A Weighted Least Squares (WLS) filter is a well-known edge preserving smoothing technique. I used it for image enhancement and denoising.
For image interpolation, I used Nyquist Filter Design in MATLAB.
A Wavelet filter decomposes the signal using the DWT, filters the signal in the wavelet space using thresholding, and inverts the filtered signal to reconstruct the original signal. I used it for denoising.
For JPEG Compression, I used Discrete Cosine Transformation (DCT). The DCT expresses a finite sequence of data points in terms of a sum of cosine functions oscillating at different frequencies.