Advice on improving a analysis on images of nanoparticles

Juan Nunez-Iglesias jni.soma at gmail.com
Wed Nov 20 00:33:19 EST 2013


Hi Evelyn,

I'm guessing you are applying label() directly to your image, which is not
the right way to use it. label() connects all neighboring *nonzero* points
together. Since images are rarely zero (rather than some very small
intensity value), you are simply connecting all the pixels of your image
together into one label.

The correct way to do this is to threshold your image, eg using:
http://scikit-image.org/docs/dev/api/skimage.filter.html#threshold-adaptive

So:

>>> from skimage.filter import threshold_adaptive
>>> from scipy import ndimage as nd
>>> diam = 51
>>> # "51" is a guess, you might have to fiddle with this parameter.
>>> image_t = (image > threshold_adaptive(image, diam))
>>> image_labeled = nd.label(image_t)[0]
>>> particle_sizes = np.bincount(image_labeled.ravel())[1:]
>>> # [1:] is to select only the foreground labels

Hope this helps!

Juan.



On Wed, Nov 20, 2013 at 3:45 PM, Evelyn Liu <evelzw at gmail.com> wrote:

> Hi Juan,
>
> On Tuesday, November 19, 2013 9:39:47 PM UTC-5, Juan Nunez-Iglesias wrote:
>>
>> Is the goal only to count particles? In that case, I think a local
>> thresholding (threshold_adaptive) would work on all these images. Then,
>> just do a labelling (scipy.ndimage.label) and draw a histogram of particle
>> sizes. You'll get a sharp peak around the true particle size, with bigger
>> peaks for clumps
>>
>
> I'd like to use scikit to plot the size distribution histogram of
> particles in an image, which is similar with Adam's. I tried
> scipy.ndimage.measurements.label(image), which I thought would give an
> array about particle sizes. However, the output array is with all 1,
> obviously nothing about size. I must get something wrong...So which
> function should i call for the size distribution? Thanks Juan!
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "scikit-image" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to scikit-image+unsubscribe at googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-image/attachments/20131120/8fc00432/attachment.html>


More information about the scikit-image mailing list