Skip to content

Commit ebdaebe

Browse files
authored
Merge pull request #187 from saalfeldlab/fix/export
fix: behavior of inverse estimation
2 parents abad05e + b799428 commit ebdaebe

4 files changed

Lines changed: 13 additions & 11 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120

121121
<jcommander.version>1.48</jcommander.version>
122122
<alphanumeric-comparator.version>1.4.1</alphanumeric-comparator.version>
123+
<imglib2-realtransform.version>4.0.4</imglib2-realtransform.version>
123124

124125
<!-- NB: Deploy releases to the SciJava Maven repository. -->
125126
<releaseProfiles>sign,deploy-to-scijava</releaseProfiles>
@@ -324,7 +325,6 @@
324325
<artifactId>xmlunit</artifactId>
325326
<version>1.5</version>
326327
</dependency>
327-
328328
</dependencies>
329329

330330
<profiles>

src/main/java/bigwarp/BigWarp.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -618,9 +618,17 @@ public boolean accept( final File f )
618618
viewerFrameQ.getTransformBehaviours().updateKeyConfig( keymap.getConfig() );
619619
} );
620620

621+
// default inverse tolerance is 0.5 a pixell in the target space
622+
if ( data.numTargetSources() > 0 )
623+
{
624+
final double res = data.getTargetSource( 0 ).getSpimSource().getVoxelDimensions().dimension( 0 );
625+
bwTransform.setInverseTolerance( 0.5 * res );
626+
}
627+
621628
// this call has to come after the actions are set
622629
warpVisDialog.setActions();
623630
warpVisDialog.toleranceSpinner.setValue( bwTransform.getInverseTolerance() );
631+
warpVisDialog.maxIterSpinner.setValue( bwTransform.getInverseMaxIterations() );
624632

625633
setUpViewerMenu( viewerFrameP );
626634
setUpViewerMenu( viewerFrameQ );
@@ -669,8 +677,6 @@ public boolean accept( final File f )
669677
if( data.sources.size() > 0 )
670678
initialize();
671679

672-
673-
674680
// viewerQ.state().changeListeners().add(warpVisDialog.transformGraphPanel);
675681

676682
SwingUtilities.invokeLater( () -> {

src/main/java/bigwarp/WarpVisFrame.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ public class WarpVisFrame extends JDialog
125125
// autosave
126126
private final AutosaveOptionsPanel autoSaveOptionsPanel;
127127

128-
129128
public static final int minGridSpacing = 5;
130129
public static final int maxGridSpacing = 400;
131130
public static final int defaultGridSpacing = 100;
@@ -280,7 +279,7 @@ public void stateChanged( ChangeEvent e )
280279

281280
final JPanel maxIterPanel = new JPanel();
282281
maxIterSpinner = new JSpinner();
283-
final SpinnerNumberModel itermodel = new SpinnerNumberModel( 200, 1, 5000, 1 );
282+
final SpinnerNumberModel itermodel = new SpinnerNumberModel( 1000, 1, 5000, 1 );
284283
maxIterSpinner.setModel( itermodel );
285284
maxIterSpinner.addChangeListener( new ChangeListener()
286285
{
@@ -590,10 +589,6 @@ else if( setWarpMagButton.isSelected() )
590589
setGridOptionsVisibility( false );
591590
setMagOptionsVisibility( true );
592591
}
593-
else
594-
{
595-
// System.out.println(" UHOH ");
596-
}
597592
pack();
598593
}
599594

src/main/java/bigwarp/transforms/BigWarpTransform.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public class BigWarpTransform
8686

8787
private double inverseTolerance = 0.5;
8888

89-
private int maxIterations = 200;
89+
private int maxIterations = 1000;
9090

9191
private RealRandomAccessible<? extends RealType<?>> lambdaRaw;
9292

@@ -273,7 +273,8 @@ public InvertibleRealTransform getTransformation( final int index, final boolean
273273
final WrappedIterativeInvertibleRealTransform<?> tpsXfm = (WrappedIterativeInvertibleRealTransform< ? >) solver.solve( tableModel, index );
274274
tpsXfm.getOptimzer().setMaxIters(maxIterations);
275275
tpsXfm.getOptimzer().setTolerance(inverseTolerance);
276-
tpsXfm.getOptimzer().setMaxStep(500);
276+
tpsXfm.getOptimzer().setBeta(0.5);
277+
tpsXfm.getOptimzer().setMaxStep(1000);
277278
invXfm = tpsXfm;
278279
}
279280
else

0 commit comments

Comments
 (0)