A 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. An example of the full image workflow is as shown:
Note that these are the example images used for this project, the text from image 1 is converted to a monochrome image
The following sequential steps are done using classical digital image processing techniques and coded from scratch:
- Conduct binary thresholding
- Image segmentation using a Union-Find graph algorithm
- Rotation of the image using linear, bilinear & bicubic interpolation
- Edge detection using various techniques in the spatial domain and spatial frequency domain
- 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.