ETGR 3000 – Fundamentals of Image Processing

Catalog Description:

This course covers a variety of image processing techniques to include the digitization process, digital convolution, pixel equalization, edge detection, and image reconstruction, enhancement, restoration and filtering. Students will improve their skills in MATLAB by applying these techniques to real-world scenarios.


Class Topics:

The following topics will be investigated in detail:

  • Image representation
  • Image formation
  • Pixels
  • Image enhancement
  • Fourier transforms and frequency domain processing
  • Image restoration
  • Image Geometry
  • Morphological processing
  • Image features
  • Image segmentation



Midterm Project:

1) Write a Matlab function to extract the N x N pixel neighborhood of a target pixel in an image. Your function should take in at least three parameters:

a) The image name / location

b) The neighborhood size (For a 9×9 neighborhood, the size would be N=9)

c) The target pixel location (The x and y coordinates)

You must then display this pixel neighborhood resized to match the height of the original image such that the neighborhood appears as a magnification program of the original image.

You should include functionality that:
a) Ensures the neighborhood size is odd
b) If the neighborhood size were to “roll off the edge” of the image due to the target pixel being too close to the image edge compared to the neighborhood size, adjust accordingly.

2) Provided with two image of Coca Cola bottles leaving a bottling plant, write a Matlab function which informs the user of the missing bottle cap in the second image. You should use the first image to gather data and characteristics of a correctly bottled Coca Cola image. Your function should take in an image and output an indication that the bottle is missing its cap.


Final Project: 

You are required to develop a visual inspection system that correctly identifies each of the following fault conditions that may occur in the Coca-Cola bottling plant:


  1. bottle under-filled or not filled at all
  2. bottle over-filled
  3. bottle has label missing
  4. bottle has label but label printing has failed (i.e. label is white)
  5. bottle cap is missing
  6. bottle is deformed (i.e. squashed) in some way


In each image we are only interested in classifying the central bottle in the image. One image is taken for each bottle leaving the production line so faults occurring in bottles at the sides will be detected separately when these particular bottles are themselves photographed central to the image. Additionally, some images may have no bottle in the center of the image – this is not a fault, just a gap in the production flow stemming from a machine operating further up the line. Faults with side bottles and missing bottles must be ignored by your system – only the faults listed above must be reported. You can tackle each of the cases in any order you wish. Some examples will contain more than one fault with the central bottle but these cases are rare – identify as many as you can.


You will be provided with approximately 130 images. You must write a series of Matlab functions that tests each image for every fault condition and print an organized result of your image analysis, identifying which images contain which fault(s) and a summary of the total number of faults detected for each condition.