For one extension, we implemented having the system recognize when an object was unknown. For the scaled Euclidian distance classifier, this meant setting a minimum distance value; if the minimum distance found for a label is not smaller than this threshold, we do not consider the label to be a true match and return "unknown" instead. For the KNN classifier, we implemented something similar, where we do not return the most common label among the K nearest neighbors if those K neighbors have too large an average distance from the input image. We had some issues determining what minimum distance value to use, because making the value too high allows false positive identifications, while making it too low brings false negatives. Normalizing some of the features helped with this issue a little bit. One can see an example of an unknown input in the video linked above.
For another extension, we added displaying various information on the screen for video input. In addition to thresholded image and the label, we show all of the feature values, the bounding box, the region contour, and the major and minor axes. The bounding box and axes use the OpenCV function for drawing a line; the contour uses the built-in OpenCV function for drawing contours. All of these appear in Figures 2-4 above.
Special thanks to Walker for suggesting that we normalize the Hu moment data for Euclidian distances.