3D convex hull KNIME

I was wondering if anybody had implemented a 3D convex hull in KNIME? I would like to measure foci distances from the periphery of a nucleus.

A 2D convex hull already has a node which works very nicely (I’ve implemented in an example workflow here) and it’s possible to generate some points with connected component analysis after the binary hull image is generated.

3D is another issue though. I can certainly process stack with each slice as 2D convex hull but this isn’t really a real 3D hull (see what I’ve done here in the second example). @stelfrich suggested ImageJ Ops which would require using scijava to call the command.

So I was wondering if anybody had already done this or had some advice on how best to approach it.


I once tried using the ImageJ Ops version of convex hull (geom.convexHull), but was running into issues along the way, documented here:

It’s still unclear (to me at least) whether the actual issue is in the convexHull op, in the voxelization op, or in the mesh creation, as both ops do work correctly in other use cases. (The sequence of mesh creation and voxelization is required because convexHull works on a mesh, not on a binary image.)

I likely won’t have time to give it another shot soon, but in theory, once you get the script discussed in the linked issue running, it is straight-forward to port it to an IJ2 plugin such as the ones in fmi-ij2-plugins to run it in KNIME.

Alternatively, we might consider calling the 3D Convex Hull command from mcib3d/mcib3d-plugins, as also mentioned in the GitHub issue.

It might be worth asking on the Image.sc forum as well, as you might get the attention of a larger image analysis-oriented crowd over there.


Thanks, Jan, I’ll mess around with it first and see if I get anywhere and if not I can cross post to image.sc.

It may just be easier to call 3D Convex Hull from mcib3d/mcib3d-plugins as you say.

1 Like