Using Fiji's Frangi Vesselness filter in KNIME

Hi,

I saw that in the ImageJ2 node library in KNIME Gaussian blur is already available (although in that case I could also go directly for the gaussian convolution node). Do you also plan to implement the other ones? In particular, would it be possible to implement the Frangi Vesselness filter as well? This would help me a lot, since I have a project where it improves my segmentation results by quite a bit.
Thanks a lot!
Cheers,
Friedrich

Have you taken a look at https://www.knime.com/community/imagej there you can read how to install additional Imagej2 plugins into KNIME. I do not know if there is a plugin for this filter or if it is just an op :confused:
best,
Gabriel

Hi Gabriel,

Thanks a lot for your quick answer! So as far as I understand the Frangi Vesselness filter that I use in ImageJ is not a plugin, since I cannot find a .jar corresponding to this. I therefore don’t know how I would implement this in KNIME.
As an alternative I tried the “Tubeness” filter that comes with Fiji (Plugins>Analyze>Tubeness). In the link you posted, they even refer to this one as an example for the import of an external ImageJ2 plugin in KNIME

(" Additionally an ImageJ2 version of Tubeness 1.2 (http://www.longair.net/edinburgh/imagej/tubeness/) has been included as a demonstration of a more advanced plugin.")

But I don’t see this one in my KNIME version. Any idea how I could get this one running in KNIME as an alternative for the Frangi filter? I looked for the corresponding .jar in the Fiji plugins folder, but could not find it. I also tried calling it from an ImageJ1 macro, but this doesn’t work either
Best,
Friedrich

Do you have the ImageJ integration installed? It is not included in the standard KNIME installation, you can install it as described here: https://www.knime.com/wiki/install-knime-image-processing under Step 2.2.

best,
Gabriel

In this case you would need to create an ImageJ2 plugin that provides access to this filter. This should be relatively easy to do.

So I have the ImageJ integration installed

KNIME Image Processing - ImageJ Integration (Beta) 0.11.5.v201807111030

I also can see some pre-installed example ImageJ2 nodes under the ImageJ node collection in my node library.
I tried to install .jars under Preferences>KNIME>ImageJ2 Installation. Although after restart they are listed as installed I cannot find the corresponding nodes in my library. I tried the Skeletonize3D.jar as a test.
Do you have any idea what I might be missing? Maybe you have an idea for an ImageJ2 .jar file that should work that I could try to install?
Thanks!
Friedrich

This is an ImageJ1 plugin, that is why no node is created for it. An example for ImageJ2 plugins usable in KNIME can be found here: https://github.com/fmi-faim/fmi-ij2-plugins.
best,
Gabriel

1 Like

Awesome! I could install the example ImageJ2 plugins now either by downloading the .jars manually from the github or by enabling the FMI update site. Coming back to my initial problem: As I said I cannot find the corresponding .jar for the tubeness plugin neither have I one for the Frangi Vesselness filter. Maybe something I can ask in the imageJ forum. Do you think installing the corresponding .jar (once I have it for either of those) should allow me to run the filter in KNIME? I am sorry for all these basic questions. Going from Fiji plugins to KNIME via ImageJ2 is a super important concept, but I am missing a bit examples where people have done it before…

2 Likes

Hi @Fritz,
I just located the code for the FrangiVesselness on github. This looks like it would work in KNIME right away, only problem is the missing headless = true annotation which results in it being filtered out. (I just opened a PR to fix that). Until this get merged you could try with the following minimal handcrafted jar:

FrangiVesselness-0.1.0-SNAPSHOT.zip (6.3 KB)
best,
Gabriel

1 Like

Wow, great! Thank you so much! Works like a charm!
Thanks again and have a nice weekend!
Fritz

2 Likes