InteractiveMarkerControlledWatershed plugin from MorpholibJ used in Maven Project from IntelliJ

maven
imagej
java
morpholibj
intellij

#1

Hi!
I try to use Interactive Marker Controlled Watershed plugin from my maven project like this:

ImagePlus labeledImage = BinaryImages.componentsLabeling( imgpls, 4, 8 );
labeledImage.show();
inra.ijpb.plugins.InteractiveMarkerControlledWatershed IW = new inra.ijpb.plugins.InteractiveMarkerControlledWatershed();
IW.run("");

And I get this error:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at inra.ijpb.plugins.InteractiveMarkerControlledWatershed$CustomWindow.<init>(InteractiveMarkerControlledWatershed.java:355)
	at inra.ijpb.plugins.InteractiveMarkerControlledWatershed$1.run(InteractiveMarkerControlledWatershed.java:1308)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	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:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	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)

Furthermore, I’ve tried opening the image without having any opened window (removing the imgpls.show()) and even though and Open Dialog pops up and I indicate the image I want to work on, the code stops running and I get a null as a return. Thanks for the help!


#2

Hello @CamilaDuitama,

Sorry for the late answer. From the error message, it seems the problem is on this line on the plugin code:

Toolbar.getInstance().setTool( Toolbar.POINT );

For this line to work, you need to have ImageJ already open. Maybe that’s missing?


#3

Hi @iarganda ,

I was planning to use this as an API inside Java without having ImageJ opened. Maybe this is not possible?

Thanks.

Camila


#4

In that case you shouldn’t use the interactive version of the plugin but either the API methods of the inra.ijpb.watershed.MarkerControlledWatershed3D (or 2D) class, or the static methods of the inra.ijpb.watershed.Watershed class. You have an example of the latest in this script.