CS663 - Digital Image Processing

Instructor: Ajit Rajwade
Office: SIA-218, KReSIT Building
Lecture Venue: SIC-201
Lecture Timings: Slot 4, Monday 11:35 to 12:30 am, Tuesday 8:30 to 9:25 am, Thursday 9:30 to 10:25 am
Instructor Office Hours (in room SIA-218): Monday 4:00 to 5:00 pm, Thursday 4:00 to 5:00 pm, or by appointment
Teaching Assistants: Vinit Kumar Gupta, Lorin Ahmed, Rohit Gupta
TA office hours (in library on 1st floor of KReSIT): Rohit - Tuesdays 4:00 to 6:00 pm; Lorin - Fridays 3:00 to 5:00 pm; Vinit - Thursdays 2:00 to 4:00 pm

Topics to be covered (tentative list)

Intended Audience

First year M Tech students, PhD students, third/fourth year B Tech students, or final year dual-degree students. This course should be of interest to students from CSE and EE primarily, but also to students from some other departments such as Biosciences and Bio-engineering.


Exposure to basic mathematics: calculus, linear algebra and probability. Ability to program in C/C++/MATLAB and/or willingness to learn MATLAB. Some background in basic signal processing (a DSP or signals and systems course) is desirable though not absolutely essential.

Textbooks and Resources

Grading Policy

Other Policies

Lecture Schedule:


Content of the Lecture


18/07 (Thurs)
  • Introduction
22/07 (Mon)
  • Image basics: spatial resolution, intensity quantization, pixel; Image Alignment and need for it; Image Motion models: translation, rotation, scaling, shearing (affine and rigid); Image warping: forward and reverse; Image alignment using control points; Image alignment using sum of squared differences; Field of view changes in image alignment
23/07 (Tue)
  • Image alignment when intensity profiles are different: concept of image histogram, joint image histogram; entropy of a random variable, joint entropy; use of joint entropy for image alignment; mention of some related applications: template matching, image panoramas.
  • Slides
  • Assignment 0: download MATLAB from here and install it on your machine. Start playing around with it!
  • Read section 2.6.5 of Gonzalez
25/07 (Thurs)
  • Image enhancement: histogram equalization: derivation and example, histogram specification; Smoothing filters: mean filter, weighted mean filter, median filter
  • Slides
  • Read section 3.2.4 and 3.3 of Gonzalez
29/07 (Mon)
  • MATLAB tutorial
30/07 (Tue)
  • Mean and median filtering, Gaussian and impulse noise, conceptual difference between mean and median, Image derivatives: first and second, gradient magnitude, image Laplacian, rotational invariance of gradient magnitude and Laplacian, image sharpening using the Laplacian, unsharp masking
  • Slides
  • Sections 3.5 and 3.6 (upto and including 3.6.3 only) of Gonzalez
01/08 (Thurs)
  • Fourier analysis: Fourier series for periodic signals, Fourier transform of aperiodic signals and inverse Fourier transform, properties of the Fourier transform: linearity, scaling, shifting, duality; Fourier transform of the rect and sinc signals; Dirac delta function; convolution theorem; two-dimensional Fourier transform
05/08 (Mon)
  • Discrete fourier transform (DFT) and its inverse, matrix representation of DFT, DFT in 2D, Fourier spectrum and phase, MATLAB examples: effect of translation and rotation on Fourier spectrum, decay of spectrum values, reconstruction of signal by removing some frequency components; discrete convolution and convolution theorem, MATLAB examples
06/08 (Tue)
  • Filter design in the frequency domain: low-pass (ideal and Gaussian), high-pass (ideal and Gaussian), phenomenon of ripples (Gibb's phenomenon) in ideal low-pass and high-pass filtering, band-pass filters; Motivation for convolution - in case of linear time-invariant (or, equivalently, space-invariant systems), examples of linear and non-linear systems, examples of time-invariant and time-variant systems
08/08 (Thurs)
  • Applications of filtering: photo-mosaics and hybrid images (How do you think a hybrid image is generated given two constituent images?); Notch filters and Moire patterns; Derivation of Fourier Transform of a sampled signal, Shannon's sampling theorem for band-limited signals and the Whittaker-Shannon interpolation formula, Aliasing due to under-sampling and examples thereof; Derivation of the Discrete Fourier Transform of a sampled signal.
12/08 (Mon)
  • Heat equation and its application to image processing; Equivalence between execution of heat equation and Gaussian convolution; Numerical simulation of Heat equation (with Neumann boundary conditions); Introduction to anisotropic diffusion (to be continued)
13/08 (Tue)
  • Gradient vector and divergence; Anisotropic diffusion: Perona and Malik PDE; generation of interesting blurs in an image using diffusion PDEs: concept of directional derivatives of first and second order.
19/08 (Mon)
  • Recap of PDEs for diffusion; Edge detection - first and second derivative operators in 1D and 2D, Prewiit and Sobel masks
  • HW2 out (due 30th August before 11:59 pm)
  • Slides
  • Read sections 10.2 (upto 10.2.6) of Gonzalez
20/08 (Tue)
  • Edge detection: Marr-Hildreth edge detector (using Laplacian of Gaussians) and Canny edge detector; Review of Fourier transforms: Fourier transform of vertical and horizontal edges/ridges
  • Slides
  • Read sections 10.2 (upto 10.2.6) of Gonzalez
22/08 (Thurs)
  • Face recognition: intro; Principal components analysis for face recognition (eigenfaces): intro, concept of covariance matrix
26/08 (Mon)
  • Eigenfaces continued
27/08 (Tue)
  • Eigenfaces continued: detailed derivation of PCA
29/08 (Thurs)
  • Eigenfaces: wrap-up - person-specific eigen-spaces versus single eigenspace for the whole database; PCA for compression of a database of similar images. Singular value decomposition (SVD) of a matrix, SVD of a natural image and its application in image compression.
3/9 (Mon)
  • Image restoration: degradation models, inverse filter, wiener filter, motion blur
04/09 (Tue)
  • Motion blur, flutter-shutter camera (side topic: not on exam), least-squares restoration and its relation to inverse filter
06/09 (Thurs)
  • Midterm revision
09/09 to 16/09
  • Midterm week
17/09 (Tue)
  • Demonstration of inverse filter with coded aperture blur, Least squares restoration, Circulant matrices and least squares restoration, block circulant matrices, regularized least squares restoration
19/09 (Tue)
  • Distribution of midterm papers
23/09 (Mon)
  • Color image processing: color perception - rods and cones in the retina, RGB, CMY(K) color models, half-toning for printing, a color-based optical illusion
24/09 (Tue)
  • HSI color model: derivation of HSI from RGB, concept of hue, saturation, intensityin HSI; lighting model involving ambient, diffuse and specular reflections; practical applications of hue - invariance of hue to change in ambient lighting and specular reflections,
26/09 (Thurs)
  • Hue - advantages, chromaticity vector, problems with hue and chromaticity; Color image processing: histogram equalization, bilateral filtering, color edge detection examples; PCA of RGB triples (to be continued)
30/9 (Mon)
  • YCbCr color space; hyperspectral images;
    Introduction to image segmentation - what is image segmentation? applications of image segmentation; clustering algorithms, k-means
1/10 (Tue)
  • K-means clustering algorithm; probability density estimation and its relation to clustering (see MATLAB code here (for 1-D) and here (for 2-D)), kernel density estimation
3/10 (Thurs)
  • Mean shift algorithm, movation for algorithm, kernel density estimation, applications in image segmentation, smoothing and splicing
7/10 (Mon)
  • Hough transform
8/10 (Tue)
  • Snakes
10/10 (Thurs)
  • OpenCV:
    • Installation of OpenCV 2.4.6 on Windows
    • (requires Visual Studio on your machine - pay careful attention to the information on path settings, mentioned by the uploader below the video clip)
    • Download OpenCV 2.4.6
    • OpenCV samples programs (canny edge detector, erosion and dilation, object tracking and many more will be in the samples directory when you install opencv)
14/10 (Mon)
  • Recap of image segmentation: mean shift and snakes, discussion for HW5
15/10 (Tue)
  • Image compression: lossy and lossless, motivation for lossy compression for images; OVerview of JPEG standard; discrete cosine transform in 1D and 2D, properties of DCT matrix, computation of DCT using FFT, energy compaction of DCT, experiments with natural images to show relationship between DCT and PCA (principal components analysis)
17/10 (Thurs)
  • JPEG standard: use of DCT, quantization of DCT coefficients, Huffman encoding, overview of JPEG encoder and decoder
21/10 (Mon)
  • JPEG decoder, JPEG artifacts, JPEG for color images; MPEG standard overview: concept of predictive coding, concept of predictive coding with motion compensation, I-frames (also called key-frames), P-frames, B-frames
  • Slides
  • Read section 8.2.9 of the book
22/10 (Tue)
  • Wrap-up of MPEG standard: motion compensation; Introduction to image retrieval
24/10 (Thurs)
  • Introduction to image retrieval; histograms in 1D, 2D, 3D; distance measures to compare histograms: L1,L2, Kullback-Leibler, Jeffreys's divergence; Concept of Earth Mover's distance
28/10 (Mon)
  • Earth movers distance; retrieval experiments - concept of precision and recall, partial matches in color histogram based image retrieval; concept of texture
29/10 (Tue)
  • Concept of texture - Gabor filters and Gabor filter banks, orientation and frequency selectivity of Gabor filters, biological motivation, texture retrieval experiments
31/10 (Thurs)
  • Tomography: introduction, meaning of projection, overview of CT scanner, Radon Transform, Projection Slice Theorem
7/11 (Thurs)
  • Tomography: projection slice theorem, backprojection and blur, filtered back-projection (Ramachandran Lakshminarayanan filter), relationship between filtered backprojection and simple backprojection, properties of the Radon Transform
11/11 (Mon)
  • Project discussion with students (one on one)