I am trying to use KNIME to segment confocal images of tissue sections containing densely packed nuclei (retinas). In the past, I have used Bitplane Imaris to do so. Imaris’ “Surfaces” segmentation tool works very well in this context- I believe it uses something very similar to the Waehlby algorithm in KNIME, with seeded watershed region growing followed by clump splitting based on size/shape. I would like to replace my Imaris workflow entirely with KNIME, since KNIME is so much more flexible.
I have several questions regarding the KNIME implementation:
Is there some particular reason the Waehlby algorithm only available in 2 dimensions? The paper implements it in 3d without much ado- normalisation for z attenuation and rescaling to correct for acubic voxels. I don’t have any meaningful experience with Java and wasn’t able to see anything in the node code that would explain the limitation.
Is there a straightforward way to implement the z attenuation adjustment in KNIME? The Waehlby paper thresholds each plane and fits a line to the average signal through the z-stack, then performs a multiplicative adjustment to the original image. I couldn’t figure out how to extract average signal values from images in KNIME- should I be looking to write a python script to do this?
Imaris can output segmentation results in the form of arrays of voxels occupied by each object. It would be useful to import these data as labels in KNIME (to compare with whatever workflow I end up with, or as a backup in case I can’t get the Waehlby stuff to work adequately). Any suggestions for how such importation might be accomplished?
Many thanks for your time!