嗯,我正在用python.when学习图像处理我看到了下面的句子
labels, nbr_objects = measurements.label(im)我想知道它背后的算法,所以我转到"label“的定义,并看到一个示例,如下所示
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]])那么,我如何理解这个示例并知道measurements.labels的算法呢?
发布于 2016-02-19 17:49:43
当你输入'help()‘时,你通常会得到一个函数的简短定义,它关注的是代码是如何工作的(不同的参数,输出...)。为了理解函数的基础,更好的方法是查看更多的理论解释,例如here,然后查看函数定义。
如果你理解标签操作,这个定义是非常明显的。总而言之,它只是区分并为二进制图像中的每个区域分配一个数字(“标记”)。因此,它有两个输出:区域的数量和一个与输入相同形状的数组,其中不同的区域编号。
https://stackoverflow.com/questions/34868030
复制相似问题