Question about fill small holes function in 11353 release


I downloaded the latest release (r11353) which should have fixed an error while using the ‘fill small holes’ operation. This operation doesn’t lead to an error anymore but doesn’t seem to work or it’s possible that I use it incorrectly.

I tried several ways to avoid this step, but from the set of images I have I can’t use the ‘Fill holes in identified objects?’ option in IdentifyPrimaryObjects as in some cases it fills the wound, which is what I’m interested in. The purpose of this assay is indeed to look at the healing of the wound by measuring the cell monolayer area at different times. For this images set, we are using DAPI labelling as marker of the monolayer, and basically dilate it . If I do a lot of dilation / erosion / close steps I end up with too closed wound or remaining holes into the monolayer. I was thinking of inverting the binary image, sieve small areas and inverting again, but haven’t found a sieving operation.

I attached the pipeline and a few images. Thank you for helping me deal with this question…


Aurianne Lescure

woundhealing_110719.cp (9.47 KB)

Are you referring to this issue, or something different? If the latter, could you reprint what the error message you were getting, and what version produced it?

Ah, I think you mean the Morph module? In any case, the original error message would still be helpful, and we’ll look into why it’s not workinng.

Also, I put together a pipeline which I believe will do what you want. Check out the annotation at the top of each module to see my thought process.

2011_07_21.cp (9.8 KB)


I meant in the Morph module indeed, I’m sorry if I wasn’t clear. My problem is I don’t get any error but the operation doesn’t seem to work (see image2.png where there are still holes after Morph step which should include a filling holes step).
I looked up at your pipeline which was very interesting in terms of getting another way of processing the images. Hoewever on some images I still get some holes in the monolayer (see image.png).
I saw that a new version of CP has been released and I think this issue might have been fixed with this release (from what Thouis told me), so I will try on this version and if not, I’ll dig more using your pipeline so that it fits more to the set of images I have to analyse.

Thanks for your help and ideas, I’ll tell you if I succeeded.


Yes, by setting a fixed radius in IdentifySecondaryObjects, I can’t guarantee all holes will be filed. However, you might use ConvertObjectsToImage on the tissue object with a binary image as the output, then run IdentifyPrimaryObjects with “Fill holes” enabled on the binary image and see if that works.

I just checked and it’s still the same result, so it seems like a bug. I’m filing a bug report, but will repost here when it’s fixed.


Sorry, Aurianne - there was a clear bug here. It’s fixed now and your image has the holes correctly removed.

Meanwhile you were correcting the problem, I found the same tip which was to convert it to an image. Then the post-treatment was to invert it to get the wound and measure this value instead of the monolayer, and it seems to work fairly well.
However, I’m very happy that you corrected this issue…It tried it and it seems to work. I will adapt my protocol using this new option that will deeply simplify the future pipeline.

Thanks a lot for your help and tips…

Best regards,