Better results with Canny/Hough for circular particles

Johannes Schönberger jsch at demuc.de
Sat Dec 14 03:43:41 EST 2013


Am 14.12.2013 um 00:09 schrieb Adam Hughes <hughesadam87 at gmail.com>:

> I'm trying multiple methods for isolating nanoparticles for a paper in which the purpose will be to contextualize a lot of available image processing workflows best suited for sizing, separating and counting nanoparticles.  The idea is that imaging nanoparticles is becomes a widely standard necessity, and so I want to present an overview of the availble methods and workflows for best processing images, as well best practices for obtaining high quality images in the lab via SEM/AFM.
> 
> I've already covered approaches via auto thresholding, with optionally applying watersheding to find particle boundaries. 

OK, segmentation would have been my first suggestion.

> IMO, Canny, Hough, Sobel etc... give another approach; whereby, one finds and deals directly with the particle boundaries/outlines.  The advantage of this approach is that it lends finer control over the particle boundaries, which are often hazy in SEM images.  I think that there are some use cases for this approach.  For example, I've observed that canny edge detection gives a great fit to particles that have a halo effect, and so I'm pretty confident that, if we could fill all of the edges, that we'd be sizing the particles very nicely.  It's easier to assess the "goodness of fit" looking at just the edges, but obviously it introduces more work.  I at least had hoped to present a bit of this edge --> filter ---> fill approach in the paper to complement the threshold approaches to segmentation.
> 
> I tried the morphological operators (open, close, dilation, edge), but they are a bit restrictive.  I'd need something that has a variable structure parameter, as Dan mentioned sort of is builtin to canny (ie, it's smart about how it closes the regions).  I'll probably just leave it at "the input parameters are crucial for getting closed regions" instead of focusing on how to connect the regions after the fact.
> 
> PS, is anyone familiar with a function in scikit or ndimage to give the perimeter/outline of a filled region?  

skimage.measure.regionprops, skimage.measure.perimeter



More information about the scikit-image mailing list