Reputation: 39
Well ,I am learning image processing with python.when I see the sentences below
labels, nbr_objects = measurements.label(im)
I want to know the algorithm behind it, So I go to the definition of "label" and see an example which is showed below
Parameters
----------
**input** : array_like
An array-like object to be labeled. Any non-zero values in `input` are
counted as features and zero values are considered the background.
**structure** : array_like, optional
A structuring element that defines feature connections.
`structure` must be symmetric. If no structuring element is provided,
one is automatically generated with a squared connectivity equal to
one. That is, for a 2-D `input` array, the default structuring element
is::
[[0,1,0],
[1,1,1],
[0,1,0]]
**output** : (None, data-type, array_like), optional
If 'output' is a data type, it specifies the type of the resulting labeled feature array
If 'output' is an array-like object, then `output` will be updated
with the labeled features from this function
Returns
-------
labeled_array : array_like
An array-like object where each unique feature has a unique value
num_features : int
How many objects were found
If `output` is None or a data type, this function returns a tuple,
(`labeled_array`, `num_features`).
If `output` is an array, then it will be updated with values in
`labeled_array` and only `num_features` will be returned by this function.
See Also
--------
find_objects : generate a list of slices for the labeled features (or
objects); useful for finding features' position or
dimensions
Examples
--------
Create an image with some features, then label it using the default
(cross-shaped) structuring element:
>>> a = array([[0,0,1,1,0,0],
... [0,0,0,1,0,0],
... [1,1,0,0,1,0],
... [0,0,0,1,0,0]])
>>> labeled_array, num_features = label(a)
Each of the 4 features are labeled with a different integer:
>>> print num_features
4
>>> print labeled_array
array([[0, 0, 1, 1, 0, 0],
[0, 0, 0, 1, 0, 0],
[2, 2, 0, 0, 3, 0],
[0, 0, 0, 4, 0, 0]])
So How can I understand the example and know the algorithm of measurements.labels
Upvotes: 3
Views: 2429
Reputation: 1129
When you type 'help()' you generally obtain a short definition of what the function does, and it is focused on how the code works (different arguments, outputs...). For understanding the basis of the function, it is a better method to look at more theoretical explanations e.g. here and after that to look at the function definition.
The definition is quite obvious if you understand the labeling operation. To sum up, it is just distinguishing and then asigning a number ('labeling') to each of the regions in a binary image. So, it has 2 outputs: The number of regions and an array with the same shape as the input one with the different regions numbered.
Upvotes: 3