Set SteerableJ parameters from a macro

Dear Forum,
I already asked this question on the imageJ Interest Group without answer:
I want to use the Ridge detector from SteerableJ plugin in a macro. However I can’t figure out how to set the parameters for the plugin from the macro.
I have different questions :

  1. Does anybody knows how to do this ?
  2. Is there a simple way for a non-Java programmer to write the code to be able to do it ?
  3. Is there another plugin to do the same thing (for detection of filament like structures in cells) ?

Thanks for your help


For ease of reference, the two threads to which @EricDenarier refers are:

For completeness, there are also two other threads about SteerableJ on the ImageJ mailing list, also unanswered:

Including the author in the discussion

The best person to answer questions about SteerableJ is the plugin’s author, François Aguet, from the Biomedical Imaging Group (BIG) of EPFL. I have invited him to join this discussion thread, using Discourse’s invitation mechanism.

Macro recordability

Everyone asking about this issue is correct that the SteerableJ plugin is not macro recordable. It does not use a mechanism which would allow it to be (e.g.: an ImageJ2 command or parameterized script or ImageJ1 PlugIn using GenericDialog). Instead, the SteerableJ entry points extend java.awt.Dialog and then populate it with Swing components manually. So as things stand, the only way to automate usage of this plugin (without changing the code) is probably the IJ_Robot plugin.

Licensing concerns

Unfortunately, SteerableJ is not an open source project, so others are not able to modify the code to meet needs such as yours. Note also that like all of the ImageJ plugins produced by BIG, SteerableJ is covered by a restrictive usage agreement:

You are free to use this software for research purposes, but you should not redistribute it without our consent. In addition, we expect you to include adequate citations and acknowledgments whenever you present or publish results that are based on it.

The Fiji project has permission from BIG to include the plugins with Fiji, but that permission does not extend to other forms of redistribution, nor to code changes.

The path forward

As things stand, my current plan is to (eventually) split all the BIG plugins currently shipped with Fiji to their own update site, due to the licensing problems. We already did this with ImageScience for similar reasons.

However, personally, I would love to see someone from BIG (@oburri, do you know anyone who might be interested?) take the lead on moving BIG’s plugins toward current best practices, which would make life much easier for users:

  • Create an update site for BIG plugins, managed by the BIG developers.
  • Change the license to an OSS one, either permissive or copyleft.
  • Create and populate wiki pages on the ImageJ wiki describing the plugins in detail.

Or if no one from BIG is interested, I would love for anyone willing in the community to step forward as maintainer for the BIG update site, and include all the BIG plugins listed on their algorithms page. Even if the code is not open, at least it would make installation easier for ImageJ users.

Alternatives to SteerableJ

I am not an expert on image processing algorithms, but naively, I am guessing there are workable alternatives to this plugin. For example, @twagner wrote a nice Ridge Detection plugin, which is available from the Biomedgroup update site. Does anyone else have any other ideas?

1 Like

Thanks Curtis for you answer. I tried to wrote to François Aguet (at Harvard medical School not at EPFL) but his e-mail address is not valid anymore…

I found an alternative using Icy Feature Detector that can be used in a protocol (graphical programming).

I will definitively try twagner Ridge Detector.

Thanks again for your help


1 Like