The image processing assignment for CompSci 373 in Semester 1, 2023. As part of my image processing coursework, I undertook an assignment to develop a software capable of detecting barcodes in images of household items. This project not only challenged my understanding of image processing techniques but also allowed me to creatively apply them in a real-world context.
The primary task, which accounted for 10 marks, involved solving the barcode detection problem. I delved deep into the intricacies of barcode patterns and worked on algorithms that could accurately and efficiently detect these patterns in various images.
In addition to the main task, I took on an extension component worth 5 marks. This involved further enhancing the barcode detection capabilities of the software. I dedicated a separate file for this extension, where I experimented with advanced techniques and innovative approaches.
Upon completion of the extension, I penned a short reflective report detailing my experiences, learnings, and the thought process behind my extension. This report not only encapsulates my journey through this assignment but also underscores my ability to critically analyze and reflect on my work.
This project was a rewarding experience that significantly bolstered my image processing skills and gave me valuable insights into the practical applications of the concepts I learned in lectures.
NumPy: This library provided the mathematical tools necessary for handling image data as multi-dimensional arrays.
imutils: I used imutils for basic image processing functions such as translation, rotation, resizing, skeletonization, and displaying Matplotlib images.
OpenCV (cv2): This was instrumental in applying image processing techniques to detect barcodes in the images.
pyzbar: This library was used for reading one-dimensional barcodes and QR codes from the processed images.
PIL (Python Imaging Library): I used PIL for opening, manipulating, and saving different image file formats.