Open awdavies opened 11 years ago
So far in the optical_flow branch, the detection of features as well as the overall optical flow of the image seems to have been decently implemented. There's enough information between frames (if the image being looked at has places one would consider "features") to determine a rather consistent velocity, and there's an average velocity that can be returned when needed (or at least, it can be implemented to do so).
There's also a method for splitting an image into a series of colored sections using (in the example) gaussian mixture modelling (this links is more about clustering images together, but the picture of what gaussian mixture model representation looks like is a good example). Then we can ditch the whole blob implementation and use some sort of patch using the locations and colors of the partitioned sections of the image.
Another GMM link (for reference, it's used in graph cutting): http://www.morethantechnical.com/2010/05/05/bust-out-your-own-graphcut-based-image-segmentation-with-opencv-w-code/
So far, the sound generated on the image is only for one rectangle object on the screen. We track multiple of them if the section of HSV space happens to create multiple "blobs," but not yet do we look for multiple types of objects, nor will we likely be able to do so efficiently.
Perhaps look for an alternative method to tracking certain types of objects, or simply skip frames while tracking objects within different HSV spaces.
Furthermore, we should try to come up with a decent heuristic for picking colors on the image, either by selecting a few random squares and taking the average (and then looking for blobs of the color), using some sort of information from the histogram, looking for particularly "outstanding" colors (that don't match with the overall colors of the image), or some other method.