How is it possible to track common features in the following sequence of images (e.g. holes or corner points along the top margin), ? I have had no luck with ImageFeatureTrack[images] so far: it returns {{}, {}, {}, {}}, i.e. it apparently does not find nor track any features.

Update I've also tried ImageCorrespondingPoints like this, but it does not seem to find correct features either:

points = ImageCorrespondingPoints[images[[1]], images[[2]]]
c[image_, points_] :=
  ImageCompose[image, Graphics[Prepend[Disk /@ points, Red]]]
MapThread[c, {{images[[1]], images[[2]]}, points}]
  • 1
    $\begingroup$ Supposedly this function was improved in 10.2.0 but I have not used it since the update. I had better results in previous versions using ImageCorrespondingPoints iteratively over pairs of images in a sequence, making sure to generate a padded mask at each step based on the keypoints returned. This way the mask is passed as an option to each successive iteration to limit the keypoint search to those found in the first image, rather than new ones each time. $\endgroup$
    – IPoiler
    Jul 29, 2015 at 11:35
  • $\begingroup$ @It'sPronouncedOiler Thx, I'll try that (too). In your experience, does the input look reasonable for feature tracking in general? Maybe the "animation" is too course, i.e. deltas between occurrences of same features are too big? $\endgroup$
    – Drux
    Jul 29, 2015 at 11:42
  • $\begingroup$ I'm far from experienced in image processing, but I can't imagine anything easier for the type of functions MMA has included than binary images like the type you have presented here. ImageKeypoints, ImageCorners, EdgeDetect, ImageLines, CrossingDetect all seem to give pretty reasonable results when I run them on these images without tweaking thresholds; I'm not sure why an update which was touted as bringing huge improvements to the image processing toolbox would still have such abysmal performance for ImageFeatureTrack. $\endgroup$
    – IPoiler
    Jul 29, 2015 at 11:57
  • $\begingroup$ @It'sPronouncedOiler Alright, so there is hope that my effort won't be wasted :) Re-thx. $\endgroup$
    – Drux
    Jul 29, 2015 at 12:00
  • 2
    $\begingroup$ You may need to play with the options of these functions a bit, such as KeypointStrength, MaxFeatures, etc. Even the best image processing programs can only make guesses without feedback from the user; ultimately you have to toy with the threshold levels of detection to get precisely what you desire. You may need to use more basic functions like ImageKeypoints (which ImageCorrespondingPoints uses) that have more adjustable properties. I know it sounds tedious but it's very difficult to find a one-size-fits-all solution in the world of image processing. $\endgroup$
    – IPoiler
    Jul 29, 2015 at 12:44


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.