sift.init(FloatArray2D(ip.convertToFloat().getPixels(), ip.getWidth(), ip.getHeight())) features = sift.run() # instances of mpicbg.imagefeatures.Feature return features features1 = extractFeatures(imp1.getProcessor(), p) features2 = extractFeatures(imp2.getProcessor(), p) # Feature locations as points in an ROI # Store feature locations in the Roi manager for visualization later roi_manager = RoiManager() roi1 = PointRoi() roi1.setName("features for cut1") for f in features1: roi1.addPoint(f.location[0], f.location[1]) roi_manager.addRoi(roi1) roi2 = PointRoi() roi2.setName("features for cut2") for f in features2: roi2.addPoint(f.location[0], f.location[1]) roi_manager.addRoi(roi2) # Find matches between the two sets of features # (only by whether the properties of the features themselves match, # not by their spatial location.) rod = 0.9 # ratio of distances in feature similarity space (closest/next closest match) pointmatches = FloatArray2DSIFT.createMatches(features1, features2, rod)