So the general way CLIJ works taking input & writing to an output is very intuitive—to me. More so than wrangling open images in normal macros.
But, when playing around and tweaking stuff, such as inserting a step in a process, it can be annoying?
For example, I want to add Exclude on edges into an existing processing macro:
//Label objects Ext.CLIJ2_connectedComponentsLabelingBox(WS, labels); Ext.CLIJ2_release(WS); //Exclude on edges Ext.CLIJ2_excludeLabelsOnEdges(labels, labelsE); //Count the number of objects labeled Ext.CLIJ2_getMaximumOfAllPixels(labelsE, count); //Ext.CLIJ2_statisticsOfLabelledPixels(labels, labels);
I have to remember to edit the downstream input to match the new output ‘labelsE’. And if I comment out the Exclude step, then I have to fix downstream (back to ‘labels’)
To my surprise, the following works fine instead (as an insertion in the block above):
No changes downstream required! But is this ‘safe’? Seems OK—and it use is handy!—but I rather not be making fundamental errors…