Dear Ignacio,
while testing the different features in the Trainable Segmentation plugin [1], I stumbled upon a few bugs or unintuitive behavior: 1) In the "Settings" dialog, the "Save feature stack" button only takes into account those features that were saved (i.e. that were active before displaying the dialog). If the user has changed their selection of features, the saved feature stack doesn't reflect this unless you click on 'OK', re-open 'Settings' and click on 'Save feature stack'. Why not putting the "Save feature stack" button in the main window? 2) Activating the "Gabor" training feature results in the stack trace below being thrown [2]. I wasn't able to figure out if it's a bug in ImgLib2's FFTConvolution class or in the Trainable Segmentation plugin. I tested with the Blobs sample image. Let me know if I can be of further help debugging this. Best, Jan [1]: http://fiji.sc/Trainable_Weka_Segmentation#Training_features [2]: Stack trace: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: net.imglib2.view.Views.extendMirrorSingle(Lnet/imglib2/RandomAccessibleInterval;)Lnet/imglib2/ExtendedRandomAccessibleInterval; java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) java.util.concurrent.FutureTask.get(FutureTask.java:83) trainableSegmentation.FeatureStack.updateFeaturesMT(FeatureStack.java:3089) trainableSegmentation.FeatureStackArray.updateFeaturesMT(FeatureStackArray.java:245) trainableSegmentation.Weka_Segmentation$SaveFeatureStackButtonListener.actionPerformed(Weka_Segmentation.java:2415) java.awt.Button.processActionEvent(Button.java:392) java.awt.Button.processEvent(Button.java:360) java.awt.Component.dispatchEventImpl(Component.java:4630) java.awt.Component.dispatchEvent(Component.java:4460) java.awt.EventQueue.dispatchEvent(EventQueue.java:599) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) java.awt.Dialog$1.run(Dialog.java:1046) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) java.awt.EventQueue.dispatchEvent(EventQueue.java:597) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) java.awt.EventDispatchThread.run(EventDispatchThread.java:122) at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) at java.util.concurrent.FutureTask.get(FutureTask.java:83) at trainableSegmentation.FeatureStack.updateFeaturesMT(FeatureStack.java:3089) at trainableSegmentation.FeatureStackArray.updateFeaturesMT(FeatureStackArray.java:245) at trainableSegmentation.Weka_Segmentation$SaveFeatureStackButtonListener.actionPerformed(Weka_Segmentation.java:2415) at java.awt.Button.processActionEvent(Button.java:392) at java.awt.Button.processEvent(Button.java:360) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) at java.awt.Dialog$1.run(Dialog.java:1046) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Caused by: java.lang.NoSuchMethodError: net.imglib2.view.Views.extendMirrorSingle(Lnet/imglib2/RandomAccessibleInterval;)Lnet/imglib2/ExtendedRandomAccessibleInterval; at net.imglib2.algorithm.fft2.FFTConvolution.<init>(FFTConvolution.java:101) at net.imglib2.algorithm.fft2.FFTConvolution.<init>(FFTConvolution.java:74) at net.imglib2.algorithm.fft2.FFTConvolution.<init>(FFTConvolution.java:59) at trainableSegmentation.FeatureStack$17.call(FeatureStack.java:1769) at trainableSegmentation.FeatureStack$17.call(FeatureStack.java:1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Hello Jan!
> 1) In the "Settings" dialog, the "Save feature stack" button only takes > into account those features that were saved (i.e. that were active before > displaying the dialog). If the user has changed their selection of > features, the saved feature stack doesn't reflect this unless you click on > 'OK', re-open 'Settings' and click on 'Save feature stack'. Why not putting > the "Save feature stack" button in the main window? > > That's a known behavior with unfortunately not an easy solution. I thought on moving the "Save feature stack" button to the main window indeed but I found it already quite overloaded... > 2) Activating the "Gabor" training feature results in the stack trace > below being thrown [2]. I wasn't able to figure out if it's a bug in > ImgLib2's FFTConvolution class or in the Trainable Segmentation plugin. > Aha! It looks like a problem with the ImgLib2 re-factoring. I fixed it once but it's probably back so I'll dig into it. Thank you very much for reporting! ignacio > > I tested with the Blobs sample image. Let me know if I can be of further > help debugging this. > > Best, > Jan > > > [1]: http://fiji.sc/Trainable_Weka_Segmentation#Training_features > > [2]: Stack trace: > > java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: > net.imglib2.view.Views.extendMirrorSingle(Lnet/imglib2/RandomAccessibleInterval;)Lnet/imglib2/ExtendedRandomAccessibleInterval; > java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) > java.util.concurrent.FutureTask.get(FutureTask.java:83) > > trainableSegmentation.FeatureStack.updateFeaturesMT(FeatureStack.java:3089) > > trainableSegmentation.FeatureStackArray.updateFeaturesMT(FeatureStackArray.java:245) > > trainableSegmentation.Weka_Segmentation$SaveFeatureStackButtonListener.actionPerformed(Weka_Segmentation.java:2415) > java.awt.Button.processActionEvent(Button.java:392) > java.awt.Button.processEvent(Button.java:360) > java.awt.Component.dispatchEventImpl(Component.java:4630) > java.awt.Component.dispatchEvent(Component.java:4460) > java.awt.EventQueue.dispatchEvent(EventQueue.java:599) > > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) > > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) > > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) > java.awt.Dialog$1.run(Dialog.java:1046) > java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) > java.awt.EventQueue.dispatchEvent(EventQueue.java:597) > > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) > > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) > > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) > java.awt.EventDispatchThread.run(EventDispatchThread.java:122) > > at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) > at java.util.concurrent.FutureTask.get(FutureTask.java:83) > at > trainableSegmentation.FeatureStack.updateFeaturesMT(FeatureStack.java:3089) > at > trainableSegmentation.FeatureStackArray.updateFeaturesMT(FeatureStackArray.java:245) > at > trainableSegmentation.Weka_Segmentation$SaveFeatureStackButtonListener.actionPerformed(Weka_Segmentation.java:2415) > at java.awt.Button.processActionEvent(Button.java:392) > at java.awt.Button.processEvent(Button.java:360) > at java.awt.Component.dispatchEventImpl(Component.java:4630) > at java.awt.Component.dispatchEvent(Component.java:4460) > at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) > at > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) > at > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) > at > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) > at java.awt.Dialog$1.run(Dialog.java:1046) > at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) > at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) > at > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) > at > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) > at > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) > at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) > > Caused by: java.lang.NoSuchMethodError: > net.imglib2.view.Views.extendMirrorSingle(Lnet/imglib2/RandomAccessibleInterval;)Lnet/imglib2/ExtendedRandomAccessibleInterval; > at > net.imglib2.algorithm.fft2.FFTConvolution.<init>(FFTConvolution.java:101) > at > net.imglib2.algorithm.fft2.FFTConvolution.<init>(FFTConvolution.java:74) > at > net.imglib2.algorithm.fft2.FFTConvolution.<init>(FFTConvolution.java:59) > at > trainableSegmentation.FeatureStack$17.call(FeatureStack.java:1769) > at trainableSegmentation.FeatureStack$17.call(FeatureStack.java:1) > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- Ignacio Arganda-Carreras, Ph.D. Institut Jean-Pierre Bourgin, UMR1318 INRA-AgroParisTech Bâtiment 2 INRA Centre de Versailles-Grignon Route de St-Cyr (RD10) 78026 Versailles Cedex France Tel : +33 (0)1 30 83 30 00 - fax : +33 (0)1 30 83 33 19 Website: http://sites.google.com/site/iargandacarreras/ <http://biocomp.cnb.csic.es/~iarganda/index_EN.html> -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Hello again Jan,
In fact, I cannot reproduce the error with the Gabor filters. Everything works fine with my up-to-date Fiji. I tried on two different machines with Ubuntu and OS and on both the plugin worked well. ignacio On Tue, Apr 21, 2015 at 3:14 PM, Ignacio Arganda-Carreras < [hidden email]> wrote: > Hello Jan! > > > >> 1) In the "Settings" dialog, the "Save feature stack" button only takes >> into account those features that were saved (i.e. that were active before >> displaying the dialog). If the user has changed their selection of >> features, the saved feature stack doesn't reflect this unless you click on >> 'OK', re-open 'Settings' and click on 'Save feature stack'. Why not putting >> the "Save feature stack" button in the main window? >> >> > That's a known behavior with unfortunately not an easy solution. I thought > on moving the "Save feature stack" button to the main window indeed but I > found it already quite overloaded... > > >> 2) Activating the "Gabor" training feature results in the stack trace >> below being thrown [2]. I wasn't able to figure out if it's a bug in >> ImgLib2's FFTConvolution class or in the Trainable Segmentation plugin. >> > > Aha! It looks like a problem with the ImgLib2 re-factoring. I fixed it > once but it's probably back so I'll dig into it. > > Thank you very much for reporting! > > ignacio > > > >> >> I tested with the Blobs sample image. Let me know if I can be of further >> help debugging this. >> >> Best, >> Jan >> >> >> [1]: http://fiji.sc/Trainable_Weka_Segmentation#Training_features >> >> [2]: Stack trace: >> >> java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: >> net.imglib2.view.Views.extendMirrorSingle(Lnet/imglib2/RandomAccessibleInterval;)Lnet/imglib2/ExtendedRandomAccessibleInterval; >> java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) >> java.util.concurrent.FutureTask.get(FutureTask.java:83) >> >> trainableSegmentation.FeatureStack.updateFeaturesMT(FeatureStack.java:3089) >> >> trainableSegmentation.FeatureStackArray.updateFeaturesMT(FeatureStackArray.java:245) >> >> trainableSegmentation.Weka_Segmentation$SaveFeatureStackButtonListener.actionPerformed(Weka_Segmentation.java:2415) >> java.awt.Button.processActionEvent(Button.java:392) >> java.awt.Button.processEvent(Button.java:360) >> java.awt.Component.dispatchEventImpl(Component.java:4630) >> java.awt.Component.dispatchEvent(Component.java:4460) >> java.awt.EventQueue.dispatchEvent(EventQueue.java:599) >> >> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) >> >> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) >> >> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) >> java.awt.Dialog$1.run(Dialog.java:1046) >> java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) >> java.awt.EventQueue.dispatchEvent(EventQueue.java:597) >> >> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) >> >> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) >> >> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) >> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) >> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) >> java.awt.EventDispatchThread.run(EventDispatchThread.java:122) >> >> at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) >> at java.util.concurrent.FutureTask.get(FutureTask.java:83) >> at >> trainableSegmentation.FeatureStack.updateFeaturesMT(FeatureStack.java:3089) >> at >> trainableSegmentation.FeatureStackArray.updateFeaturesMT(FeatureStackArray.java:245) >> at >> trainableSegmentation.Weka_Segmentation$SaveFeatureStackButtonListener.actionPerformed(Weka_Segmentation.java:2415) >> at java.awt.Button.processActionEvent(Button.java:392) >> at java.awt.Button.processEvent(Button.java:360) >> at java.awt.Component.dispatchEventImpl(Component.java:4630) >> at java.awt.Component.dispatchEvent(Component.java:4460) >> at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) >> at >> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) >> at >> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) >> at >> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) >> at java.awt.Dialog$1.run(Dialog.java:1046) >> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) >> at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) >> at >> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) >> at >> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) >> at >> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) >> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) >> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) >> at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) >> >> Caused by: java.lang.NoSuchMethodError: >> net.imglib2.view.Views.extendMirrorSingle(Lnet/imglib2/RandomAccessibleInterval;)Lnet/imglib2/ExtendedRandomAccessibleInterval; >> at >> net.imglib2.algorithm.fft2.FFTConvolution.<init>(FFTConvolution.java:101) >> at >> net.imglib2.algorithm.fft2.FFTConvolution.<init>(FFTConvolution.java:74) >> at >> net.imglib2.algorithm.fft2.FFTConvolution.<init>(FFTConvolution.java:59) >> at >> trainableSegmentation.FeatureStack$17.call(FeatureStack.java:1769) >> at trainableSegmentation.FeatureStack$17.call(FeatureStack.java:1) >> at >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >> at java.lang.Thread.run(Thread.java:619) >> >> -- >> ImageJ mailing list: http://imagej.nih.gov/ij/list.html >> > > > > -- > Ignacio Arganda-Carreras, Ph.D. > Institut Jean-Pierre Bourgin, UMR1318 INRA-AgroParisTech > Bâtiment 2 > INRA Centre de Versailles-Grignon > Route de St-Cyr (RD10) > 78026 Versailles Cedex France > > Tel : +33 (0)1 30 83 30 00 - fax : +33 (0)1 30 83 33 19 > Website: http://sites.google.com/site/iargandacarreras/ > <http://biocomp.cnb.csic.es/~iarganda/index_EN.html> > -- Ignacio Arganda-Carreras, Ph.D. Institut Jean-Pierre Bourgin, UMR1318 INRA-AgroParisTech Bâtiment 2 INRA Centre de Versailles-Grignon Route de St-Cyr (RD10) 78026 Versailles Cedex France Tel : +33 (0)1 30 83 30 00 - fax : +33 (0)1 30 83 33 19 Website: http://sites.google.com/site/iargandacarreras/ <http://biocomp.cnb.csic.es/~iarganda/index_EN.html> -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
In reply to this post by Ignacio Arganda-Carreras-2
Hi Ignacio,
On 21.04.2015 15:14, Ignacio Arganda-Carreras wrote: >> 1) In the "Settings" dialog, the "Save feature stack" button only takes >> into account those features that were saved (i.e. that were active before >> displaying the dialog). If the user has changed their selection of >> features, the saved feature stack doesn't reflect this unless you click on >> 'OK', re-open 'Settings' and click on 'Save feature stack'. Why not putting >> the "Save feature stack" button in the main window? >> >> > That's a known behavior with unfortunately not an easy solution. I thought > on moving the "Save feature stack" button to the main window indeed but I > found it already quite overloaded... > Alright, I can live with the current behavior. I agree that it might be good not to overload the main window. > >> 2) Activating the "Gabor" training feature results in the stack trace >> below being thrown [2]. I wasn't able to figure out if it's a bug in >> ImgLib2's FFTConvolution class or in the Trainable Segmentation plugin. >> > In fact, I cannot reproduce the error with the Gabor filters. Everything > works fine with my up-to-date Fiji. Sorry for the false alarm: I stepped into the class shading trap, because the MOSAIC update site was active in that Fiji installation, and unfortunately Mosaic_Toolsuite.jar shades some imglib2 classes... So for now, do not use Mosaic_Toolsuite if you plan to use Gabor filters in Trainable Weka Segmentation. Cheers Jan -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Free forum by Nabble | Edit this page |