package org.dawnsci.surfacescatter.test; import org.dawnsci.boofcv.BoofCVImageTrackerServiceCreator; import org.eclipse.dawnsci.analysis.api.image.IImageTracker; import org.eclipse.dawnsci.analysis.api.image.IImageTracker.TrackerType; import org.eclipse.january.dataset.DatasetFactory; import org.eclipse.january.dataset.IDataset; public class TrackingTest { private IImageTracker tracker; private IDataset data; private IDataset data2; public void dataGenerator(){ data = DatasetFactory.zeros(new int[] {1000, 1000}); data2 = DatasetFactory.zeros(new int[] {1000, 1000}); for(int i = 100; i<200; i++){ for(int j = 100; j<200; j++){ data.set(10, i,j); } } for(int i = 110; i<210; i++){ for(int j = 110; j<210; j++){ data2.set(10, i,j); } } } public void before() throws Exception { if (tracker == null) tracker = BoofCVImageTrackerServiceCreator.createImageTrackerService(); // data = LoaderFactory.getData("/dls/i07/data/2015/si10262-1/pilatus3/p3Image1024107.tif", null).getDataset(dataname); // data2 = LoaderFactory.getData("/dls/i07/data/2015/si10262-1/pilatus3/p3Image1024108.tif", null).getDataset(dataname); } public void testImageTrackerBasic() throws Exception { double[] originalLocation = new double[] { 90, 90, 210, 90, 90, 210, 210, 210 }; // initialize tracker tracker.initialize(data, originalLocation, TrackerType.TLD); // run tracker against second image double[] location = tracker.track(data2); System.out.println("location: " + location[0] + location[1] + location[2] + location[3] + location[4] + location[5] + location[6] + location[7]); double[] locationExpected = new double[] { 100, 100, 220, 100, 100, 220, 220, 220}; } }