Issue exporting warp field from BigWarp

Hi there,

I am attempting to register a set of ~300 2D foot imprint images using ANTs. I find that applying a thin plate spline transformation guided by landmarks in BigWarp first, then passing the result of this through ANTs and performing the usual rigid->affine->SyN transformation, gives me the best registration result by far. I do not have an issue exporting the transformed image from BigWarp, but when I try to export the warp field I get the following error. I need the warp field so that I can use my transformations to propagate a landmark set to avoid manually landmarking each image for shape analysis down the line.

xception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 3
at net.imglib2.view.Views.permute(Views.java:392)
at bigwarp.BigWarp.exportWarpField(BigWarp.java:968)
at bigwarp.BigWarpActions$ExportWarpAction.actionPerformed(BigWarpActions.java:1013)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

I am running version 5.0.0. When initially loading in the images, I also obtain the error:

WARNING:
Opening dataset that is not suited for interactive browsing.
Consider resaving as HDF5 for better performance.

but this does not affect my ability to place landmarks and transform the images. I’ve read a similar topic on this issue but I’m not sure it solves my exact problem.

Any help would be greatly appreciated :slight_smile:

Hi @ambnev,

Welcome to the forum, and glad to hear its been helpful.

Thanks for posting about this issue. The good news is, I think I fixed it already. Bad news is, it’s not released yet.

Could you please try download the newest code from here, and replacing the bigwarp file in Fiji.app/plugins with the new one.

Please post back both if that solves the issue and if you continue to see this problem.

John

Hi John, thanks for the quick reply! I’ve replaced the bigwarp file with the updated version. The error no longer persists! However, I’m not exactly sure if the exported warp field is what it’s supposed to be? This is the exported warp field:

I was expecting an output similar to this (this is from ANTs):

For context, these are my two registered images:
image

Does the result I obtained look reasonable?

Amanda

Hi Amanda (@ambnev)

I think its just that the brightness / contrast for the display of the warp field is off.
Does it look better if you adjust it (Image> Adjust > Brightness/Contrast or Ctrl+Shift+C)?

John