Image restoration techniques can be divided into two categories: blind and non-blind. Blind image restoration does not need any prior knowledge of the degradation model or the original image, and instead relies on self-learning or optimization algorithms to estimate and remove the degradation. Non-blind image restoration, on the other hand, assumes that some information about the degradation model or the original image is available, and uses it to guide the restoration process. Common image restoration techniques include filtering, deblurring, denoising, inpainting, and super-resolution. Filtering involves applying a linear or non-linear filter to the degraded image to remove noise or blur based on a predefined kernel or a learned function. Deblurring removes blur caused by camera motion, object motion, or defocus using techniques such as deconvolution, regularization, or deep learning. Denoising removes noise due to sensor, transmission, or compression errors using techniques such as wavelet transform, dictionary learning, or deep learning. Inpainting fills in missing or corrupted pixels in the image using diffusion, patch-based synthesis, or deep learning. Finally, super-resolution increases the resolution of an image using interpolation, reconstruction, or deep learning.