I’m trying to build a pipeline in CellProfiler to quantify the length changes of string-like objects. My two current issues with the pipeline are with optimizing the object identification, and producing the type of output measurement I need.
For the pipeline, it currently sometimes correctly identifies the objects (see Images A &B), but often times inappropriately splits objects (see Images C & D). I’ve tried increasing the Tubeness Smoothing, but that ends up creating artifacts that get identified (see Image E), which I can’t eliminate based on size, since they fit into the length range for other objects I want identified (see Image F) and often times still isn’t enough to prevent mis-segementation (see Image G).
In terms of the output measurement, what I’m looking to do is replicate the measurement generated by measuring the segmented line length in ImageJ (see Images H & I). Essentially, I’m trying to find the path-length of each object identified. Currently I do this in ImageJ by using to segmented line object and measuring the line’s length. This is highly time consuming, and I thought CellProfiler would massively increase the efficiency on this.
Because these objects often curve, it seems that ‘MajorAxisLength’ would eventually underestimate object lengths, as it my understanding is that it is computed as the major axis of an ellipse surrounding the object. Thus, a serpentine-like object’s length would be expected to be underestimated. Based on forum searching, I tried the suggestion of skeletonizing the object and taking the area, but that seems to often dramatically underestimate object length, and because of the branches created, likely throws off the measurement as well. I tried using the ‘straighten worms’ module to straighten out the objects (and perhaps potentially fix my object identification issue), but CellProfiler keeps crashing mid-way through whenever I try to create my TrainingSet. My thought is that if I could straighten the objects, then I could then take the MajorAxisLength and have it be accurate.
Sorry for the somewhat long post, but my questions boil down to:
Do you have any suggestions for improving my object identification problems?
Could you clarify the way in which MajorAxisLength is calculated?
Suggestions on how to bypass the crashes I get from when trying to train in UntangleWorms?
If I am able to straighten worms, could I subsequently use the output image to re-identify, and then measure my (straightened) object?
Image A picasaweb.google.com/1097544473 … 9417203490
Image B picasaweb.google.com/1097544473 … 5875247138
Image C picasaweb.google.com/1097544473 … 9925896242
Image D picasaweb.google.com/1097544473 … 6212395490
Image E picasaweb.google.com/1097544473 … 6425751826
Image F picasaweb.google.com/1097544473 … 3198895890
Image G picasaweb.google.com/1097544473 … 2807667634
Image H picasaweb.google.com/1097544473 … 6254034834
Image I picasaweb.google.com/1097544473 … 3222552738