Machine Vision & Image Processing

This project (code found here) presents series of digital image processing tools created in MATLAB from scratch. image_processing_report contains the full details of the image processing steps and intermediate results. The following sequential steps are done using classical digital image processing techniques and coded from scratch:

  1. Conduct binary thresholding
  2. Image segmentation using a Union-Find graph algorithm
  3. Rotation of the image using linear, bilinear & bicubic interpolation
  4. Edge detection using various techniques in the spatial domain and spatial frequency domain
  5. Finding a pixel-thin representation of the objects using mathematical morphological techniques

Image rotation is usually done by rotating the image in the reverse direction first and doing an inverse transform. Afterwards a series of interpolation methods can be used to interpolate the binary thresholded values into the new image. For the edge detection, we used spatial frequency domain techniques like Gaussian & Butterworth filtering and in the spatial domain we used convolution-based filtering like Sobel & Prewitt operator filtering and Canny edge detection.

The canny edge detection proved to be the most effective. Additionally, we came up with an innovative way to use erosion via a double-element edge detection method to get the outline as well. Finally a series of erosion techniques with 8 operators (known as the hit-and-miss algorithm) were used to create pixel thin images.

Collaborators

Arijit Dasgupta

Chong Yu Quan

Arijit Dasgupta
Arijit Dasgupta
Incoming Computer Science PhD Student