Skip to content

Commit 510e3b1

Browse files
fix according to changes with interest points and prealignment (TODO: remove all interest point handling from BigStitcher except ICP)
1 parent 27d0aee commit 510e3b1

8 files changed

Lines changed: 24 additions & 10 deletions

File tree

src/main/java/net/preibisch/stitcher/algorithm/globalopt/ExecuteGlobalOpt.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ public void run()
7676
}
7777

7878
final boolean isSavedFaG = savedFiltering != null;
79-
final GlobalOptimizationParameters params = expertMode ? GlobalOptimizationParameters.askUserForParameters(!isSavedFaG) : GlobalOptimizationParameters.askUserForSimpleParameters();
79+
final boolean preAlign = false; // no pre-align for ICP
80+
final GlobalOptimizationParameters params = expertMode ? GlobalOptimizationParameters.askUserForParameters(!isSavedFaG, preAlign) : GlobalOptimizationParameters.askUserForSimpleParameters();
8081
if ( params == null )
8182
return;
8283

src/main/java/net/preibisch/stitcher/algorithm/globalopt/GlobalOptStitcher.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ public List< ViewId > getDefaultFixedViews()
191191
{
192192
HashMap< ViewId, mpicbg.models.Tile< TranslationModel3D > > globalOptResults = GlobalOptTwoRound.computeTiles(
193193
new TranslationModel3D(),
194+
true,// preAlign
194195
new ImageCorrelationPointMatchCreator( results ),
195196
new SimpleIterativeConvergenceStrategy( Double.MAX_VALUE,
196197
params.relativeThreshold, params.absoluteThreshold ),
@@ -222,6 +223,7 @@ else if ( params.method == GlobalOptType.ONE_ROUND_ITERATIVE)
222223
{
223224
HashMap< ViewId, mpicbg.models.Tile< TranslationModel3D > > globalOptResults = GlobalOptIterative.computeTiles(
224225
new TranslationModel3D(),
226+
true,// preAlign
225227
new ImageCorrelationPointMatchCreator( results ),
226228
new SimpleIterativeConvergenceStrategy( Double.MAX_VALUE,
227229
params.relativeThreshold, params.absoluteThreshold ),
@@ -246,6 +248,7 @@ else if ( params.method == GlobalOptType.ONE_ROUND_ITERATIVE)
246248
{
247249
final HashMap< ViewId, mpicbg.models.Tile< TranslationModel3D > > globalOptResults = GlobalOpt.computeTiles(
248250
new TranslationModel3D(),
251+
true,// preAlign
249252
new ImageCorrelationPointMatchCreator( results ),
250253
new SimpleIterativeConvergenceStrategy( Double.MAX_VALUE,
251254
params.relativeThreshold, params.absoluteThreshold ),

src/main/java/net/preibisch/stitcher/algorithm/globalopt/TransformationTools.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,7 @@ public static void main( String[] args )
750750

751751
GlobalOpt.computeTiles(
752752
new TranslationModel3D(),
753+
true,// preAlign
753754
new ImageCorrelationPointMatchCreator( results, 0.5 ),
754755
new ConvergenceStrategy( 5.0 ),
755756
fixedViews,

src/main/java/net/preibisch/stitcher/gui/popup/RefineWithICPPopup.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,8 @@ public void actionPerformed( ActionEvent e )
229229

230230
// remember for macro recording
231231
ICPRefinement.defaultRefinementChoice = icpType.ordinal();
232+
final boolean preAlign = false;
233+
GlobalOptimizationParameters.defaultPrealign = preAlign;
232234
GlobalOptimizationParameters globalOptParams;
233235

234236
if ( icpType == ICPType.Expert )
@@ -243,7 +245,7 @@ public void actionPerformed( ActionEvent e )
243245
if ( !ICPRefinement.getGUIParametersSimple( icpType, data, params, downsamplingChoice, thresholdChoice, distanceChoice ) )
244246
return;
245247

246-
globalOptParams = GlobalOptimizationParameters.getGlobalOptimizationParametersForSelection( GlobalOptimizationParameters.defaultSimple );
248+
globalOptParams = GlobalOptimizationParameters.getGlobalOptimizationParametersForSelection( GlobalOptimizationParameters.defaultSimple, preAlign );
247249
}
248250

249251
if ( globalOptParams == null )

src/main/java/net/preibisch/stitcher/headless/registration/TestGlobalOptTwoRound.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ public static void main( String[] args )
148148

149149
final HashMap< ViewId, TranslationModel3D > computeResults = GlobalOptTwoRound.computeModels(
150150
new TranslationModel3D(),
151+
true,// preAlign
151152
pmc,
152153
cs,
153154
new MaxErrorLinkRemoval(),

src/main/java/net/preibisch/stitcher/plugin/Calculate_Pairwise_Shifts.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ public static boolean processLucasKanade(
270270
return true;
271271
}
272272

273-
273+
// TODO: remove interest points from BigStitcher entirely (except for ICP refinement)
274274
public static boolean processInterestPoint(final SpimData2 data,
275275
final SpimDataFilteringAndGrouping< SpimData2 > filteringAndGrouping,
276276
boolean existingInterestPoints)
@@ -313,7 +313,7 @@ public static boolean processInterestPoint(final SpimData2 data,
313313
new Font( Font.SANS_SERIF, Font.BOLD, 12 ) );
314314
gd.addMessage( "" );
315315

316-
brp.pwr.presetTransformationModel( new TransformationModelGUI( 0 ) );
316+
//brp.pwr.presetTransformationModel( new TransformationModelGUI( 0 ) );
317317
brp.pwr.addQuery( gd );
318318

319319
gd.showDialog();
@@ -419,7 +419,7 @@ public List< ViewId > getDefaultFixedViews()
419419
data.getSequenceDescription().getViewDescriptions(),
420420
ipMap,
421421
brp.labelMap,
422-
new GlobalOptimizationParameters(Double.MAX_VALUE, Double.MAX_VALUE, GlobalOptType.ONE_ROUND_SIMPLE, false ),
422+
new GlobalOptimizationParameters(Double.MAX_VALUE, Double.MAX_VALUE, GlobalOptType.ONE_ROUND_SIMPLE, true, false ),
423423
false, //matchacrosslabels
424424
true ) )
425425
continue;

src/main/java/net/preibisch/stitcher/plugin/Global_Optimization_Stitching.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public void run(String arg)
6666
final HashSet< Class< ? extends Entity > > defaultComparisonFactors = new HashSet<>();
6767
defaultComparisonFactors.add( Tile.class );
6868

69-
GlobalOptimizationParameters params = GlobalOptimizationParameters.askUserForParameters(true);
69+
GlobalOptimizationParameters params = GlobalOptimizationParameters.askUserForParameters(true, true /*prealign*/);
7070

7171
if (params.showExpertGrouping)
7272
grouping.askUserForGrouping(

src/main/java/net/preibisch/stitcher/process/ICPRefinement.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ public static void refine(
436436
}
437437

438438
// load & transform all interest points
439-
final Map< ViewId, HashMap< String, List< InterestPoint > > > interestpoints =
439+
final Map< ViewId, HashMap< String, Collection< InterestPoint > > > interestpoints =
440440
TransformationTools.getAllTransformedInterestPoints(
441441
params.viewIds,
442442
data.getViewRegistrations().getViewRegistrations(),
@@ -519,7 +519,7 @@ public static void refine(
519519
public static final HashMap< ViewId, mpicbg.models.Tile > pairSubset(
520520
final SpimData2 spimData,
521521
final Subset< ViewId > subset,
522-
final Map< ViewId, HashMap< String, List< InterestPoint > > > interestpoints,
522+
final Map< ViewId, HashMap< String, Collection< InterestPoint > > > interestpoints,
523523
final Map< ViewId, HashMap< String, Double > > labelMap,
524524
final IterativeClosestPointParameters icpp,
525525
final List< ViewId > fixedViews,
@@ -594,6 +594,7 @@ public static final HashMap< ViewId, mpicbg.models.Tile > pairSubset(
594594
{
595595
models = (HashMap< ViewId, mpicbg.models.Tile >)(Object)GlobalOpt.computeTiles(
596596
(Model)(Object)icpp.getModel().copy(),
597+
globalOptParameters.preAlign,
597598
pmc,
598599
new ConvergenceStrategy( icpp.getMaxDistance() ),
599600
fixedViews,
@@ -603,6 +604,7 @@ else if ( globalOptParameters.method == GlobalOptType.ONE_ROUND_ITERATIVE )
603604
{
604605
models = (HashMap< ViewId, mpicbg.models.Tile >)(Object)GlobalOptIterative.computeTiles(
605606
(Model)(Object)icpp.getModel().copy(),
607+
globalOptParameters.preAlign,
606608
pmc,
607609
new SimpleIterativeConvergenceStrategy( icpp.getMaxDistance(), globalOptParameters.relativeThreshold, globalOptParameters.absoluteThreshold ),
608610
new MaxErrorLinkRemoval(),
@@ -614,6 +616,7 @@ else if ( globalOptParameters.method == GlobalOptType.ONE_ROUND_ITERATIVE )
614616
{
615617
models = (HashMap< ViewId, mpicbg.models.Tile >)(Object)GlobalOptTwoRound.computeTiles(
616618
(Model & Affine3D)(Object)icpp.getModel().copy(),
619+
globalOptParameters.preAlign,
617620
pmc,
618621
new SimpleIterativeConvergenceStrategy( icpp.getMaxDistance(), globalOptParameters.relativeThreshold, globalOptParameters.absoluteThreshold ), // if it's simple, both will be Double.MAX
619622
new MaxErrorLinkRemoval(),
@@ -635,7 +638,7 @@ else if ( globalOptParameters.method == GlobalOptType.ONE_ROUND_ITERATIVE )
635638
public static HashMap< ViewId, mpicbg.models.Tile > groupedSubset(
636639
final SpimData2 spimData,
637640
final Subset< ViewId > subset,
638-
final Map< ViewId, HashMap< String, List< InterestPoint > > > interestpoints,
641+
final Map< ViewId, HashMap< String, Collection< InterestPoint > > > interestpoints,
639642
final Map< ViewId, HashMap< String, Double > > labelMap,
640643
final IterativeClosestPointParameters icpp,
641644
final List< ViewId > fixedViews,
@@ -646,7 +649,7 @@ public static HashMap< ViewId, mpicbg.models.Tile > groupedSubset(
646649
final boolean matchAcrossLabels )
647650
{
648651
final List< Pair< Group< ViewId >, Group< ViewId > > > groupedPairs = subset.getGroupedPairs();
649-
final Map< Group< ViewId >, HashMap< String, List< GroupedInterestPoint< ViewId > > > > groupedInterestpoints = new HashMap<>();
652+
final Map< Group< ViewId >, HashMap< String, Collection< GroupedInterestPoint< ViewId > > > > groupedInterestpoints = new HashMap<>();
650653
final InterestPointGrouping< ViewId > ipGrouping = new InterestPointGroupingMinDistance<>( interestpoints );
651654

652655
if ( groupedPairs.size() <= 0 )
@@ -714,6 +717,7 @@ public static HashMap< ViewId, mpicbg.models.Tile > groupedSubset(
714717
{
715718
models = (HashMap< ViewId, mpicbg.models.Tile >)(Object)GlobalOpt.computeTiles(
716719
(Model)(Object)icpp.getModel().copy(),
720+
globalOptParameters.preAlign,
717721
pmc,
718722
new ConvergenceStrategy( icpp.getMaxDistance() ),
719723
fixedViews,
@@ -723,6 +727,7 @@ else if ( globalOptParameters.method == GlobalOptType.ONE_ROUND_ITERATIVE )
723727
{
724728
models = (HashMap< ViewId, mpicbg.models.Tile >)(Object)GlobalOptIterative.computeTiles(
725729
(Model)(Object)icpp.getModel().copy(),
730+
globalOptParameters.preAlign,
726731
pmc,
727732
new SimpleIterativeConvergenceStrategy( icpp.getMaxDistance(), globalOptParameters.relativeThreshold, globalOptParameters.absoluteThreshold ),
728733
new MaxErrorLinkRemoval(),
@@ -734,6 +739,7 @@ else if ( globalOptParameters.method == GlobalOptType.ONE_ROUND_ITERATIVE )
734739
{
735740
models = (HashMap< ViewId, mpicbg.models.Tile >)(Object)GlobalOptTwoRound.computeTiles(
736741
(Model & Affine3D)(Object)icpp.getModel().copy(),
742+
globalOptParameters.preAlign,
737743
pmc,
738744
new SimpleIterativeConvergenceStrategy( icpp.getMaxDistance(), globalOptParameters.relativeThreshold, globalOptParameters.absoluteThreshold ), // if it's simple, both will be Double.MAX
739745
new MaxErrorLinkRemoval(),

0 commit comments

Comments
 (0)