function to measure the (local) density of 1s in a binary image

Egor Panfilov multicolor.mood at gmail.com
Thu May 26 11:40:39 EDT 2016


By the way :), we do have such filter in 
`skimage`: http://scikit-image.org/docs/dev/api/skimage.filters.rank.html#mean 
, but it is selective to input dtype and doesn't support many boundary 
conditions' alternatives.

Cheers,
Egor

четверг, 26 мая 2016 г., 18:29:59 UTC+3 пользователь Egor Panfilov написал:
>
> Hi Matteo!
>
> The function you're looking for is as simple as convolution [1] with a 
> typical structuring element [2] (we have square, circle and many more). I 
> suppose, this can also be called as 'mean filter':
>
> Here is an example:
>
>> import numpy as np
>> import scipy.ndimage as ndi
>> from skimage.morphology import square
>>
>> img = np.random.uniform(size=(5, 5))
>> img = (img > 0.5).astype(np.float)
>> sem = square(3)/3**2   # Don't forget to normalize
>> out = ndi.convolve(img, sem, mode='wrap')
>>
>  
>
> print(img)
>> print(sem)
>> print(out)
>
>
> Results to: 
>
>> [[ 1.  0.  0.  1.  0.]
>>  [ 1.  0.  0.  0.  0.]
>>  [ 0.  0.  1.  1.  0.]
>>  [ 0.  0.  0.  0.  1.]
>>  [ 1.  0.  1.  0.  0.]]
>> [[ 0.11111111  0.11111111  0.11111111]
>>  [ 0.11111111  0.11111111  0.11111111]
>>  [ 0.11111111  0.11111111  0.11111111]]
>> [[ 0.33333333  0.44444444  0.22222222  0.22222222  0.44444444]
>>  [ 0.22222222  0.33333333  0.33333333  0.33333333  0.44444444]
>>  [ 0.22222222  0.22222222  0.22222222  0.33333333  0.33333333]
>>  [ 0.22222222  0.33333333  0.33333333  0.44444444  0.33333333]
>>  [ 0.33333333  0.33333333  0.22222222  0.33333333  0.44444444]]
>
>
> Cheers,
> Egor
>
> [1] 
> http://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.convolve.html#scipy.ndimage.convolve
>  
> [2] 
> http://scikit-image.org/docs/dev/api/skimage.morphology.html#module-skimage.morphology
>
> 2016-05-26 18:11 GMT+03:00 Matteo <matteo.niccoli at gmail.com>:
>
>> Is there a function in scikit-image to calculate the the local density of 
>> 1s in a binary image?
>>
>> By local density of 1s I mean:
>> 1) count the number of pixels that have value of 1 in a running/sliding 
>> window (preferrably circular but square would work too)
>> 2) divide by the total number of pixels in the running window
>>
>> Thanks
>> Matteo
>>
>> -- 
>> 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.
>> To post to this group, send email to scikit-image at googlegroups.com.
>> To view this discussion on the web, visit 
>> https://groups.google.com/d/msgid/scikit-image/1b36234e-79ed-4eec-9c4a-ea1b659069f3%40googlegroups.com 
>> <https://groups.google.com/d/msgid/scikit-image/1b36234e-79ed-4eec-9c4a-ea1b659069f3%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-image/attachments/20160526/2194de8e/attachment.html>


More information about the scikit-image mailing list