skimage.future#

具有实验性 API 的功能。

警告

虽然您可以指望此软件包中的函数在未来仍然存在,但 API 可能会随着任何版本更新而更改,并且不会遵循 skimage 的双版本弃用路径。因此,请谨慎使用此处的函数,并且不要在依赖于更新的 skimage 版本的生产代码中使用它们。

fit_segmenter

使用图像的标记部分和分类器进行分割。

manual_lasso_segmentation

根据使用鼠标进行的自由选择返回标签图像。

manual_polygon_segmentation

根据使用鼠标进行的多边形选择返回标签图像。

predict_segmenter

使用预训练的分类器对图像进行分割。

TrainableSegmenter

用于分类像素的估计器。


skimage.future.fit_segmenter(labels, features, clf)[源代码]#

使用图像的标记部分和分类器进行分割。

参数:
labels整数的 ndarray

标签图像。标签 >= 1 对应于训练集,标签 0 对应于要分割的未标记像素。

featuresndarray

特征数组,第一维对应于特征的数量,其他维度对应于 labels.shape

clf分类器对象

分类器对象,公开一个 fit 和一个 predict 方法,如 scikit-learn 的 API 中一样,例如 RandomForestClassifierLogisticRegression 分类器的实例。

返回:
clf分类器对象

labels 上训练的分类器

引发:
如果 self.clf 尚未拟合,则引发 NotFittedError(使用 self.fit)。

使用局部特征和随机森林进行可训练分割

使用局部特征和随机森林进行可训练分割

skimage.future.manual_lasso_segmentation(image, alpha=0.4, return_all=False)[源代码]#

根据使用鼠标进行的自由选择返回标签图像。

参数:
image(M, N[, 3]) 数组

灰度或 RGB 图像。

alphafloat, 可选

在图像上绘制的多边形的透明度值。

return_allbool, 可选

如果为 True,则返回一个包含每个单独绘制的多边形的数组。(多边形可能重叠。)如果为 False(默认),则后面的多边形在重叠处“覆盖”较早的多边形。

返回:
labels整数数组,形状为 ([Q, ]M, N)

分割的区域。如果模式为 'separate',则数组的前导维度对应于用户绘制的区域数量。

备注

按住鼠标左键以在每个对象周围绘制。

示例

>>> from skimage import data, future
>>> import matplotlib.pyplot as plt  
>>> camera = data.camera()
>>> mask = future.manual_lasso_segmentation(camera)  
>>> fig, ax = plt.subplots()  
>>> ax.imshow(mask)           
>>> plt.show()                

skimage.future.manual_polygon_segmentation(image, alpha=0.4, return_all=False)[源代码]#

根据使用鼠标进行的多边形选择返回标签图像。

参数:
image(M, N[, 3]) 数组

灰度或 RGB 图像。

alphafloat, 可选

在图像上绘制的多边形的透明度值。

return_allbool, 可选

如果为 True,则返回一个包含每个单独绘制的多边形的数组。(多边形可能重叠。)如果为 False(默认),则后面的多边形在重叠处“覆盖”较早的多边形。

返回:
labels整数数组,形状为 ([Q, ]M, N)

分割的区域。如果模式为 'separate',则数组的前导维度对应于用户绘制的区域数量。

备注

使用鼠标左键选择多边形的顶点,并在选择所有顶点后使用鼠标右键确认选择。

示例

>>> from skimage import data, future
>>> import matplotlib.pyplot as plt  
>>> camera = data.camera()
>>> mask = future.manual_polygon_segmentation(camera)  
>>> fig, ax = plt.subplots()  
>>> ax.imshow(mask)           
>>> plt.show()                

skimage.future.predict_segmenter(features, clf)[源代码]#

使用预训练的分类器对图像进行分割。

参数:
featuresndarray

特征数组,最后一个维度对应于特征的数量,其他维度与要分割的图像的形状兼容,或者是一个展平的图像。

clf分类器对象

经过训练的分类器对象,公开一个 predict 方法,如 scikit-learn 的 API 中一样,例如 RandomForestClassifierLogisticRegression 分类器的实例。分类器必须已经过训练,例如使用 skimage.future.fit_segmenter()

返回:
输出ndarray

从分类器的预测构建的标记数组。

使用局部特征和随机森林进行可训练分割

使用局部特征和随机森林进行可训练分割
class skimage.future.TrainableSegmenter(clf=None, features_func=None)[源代码]#

基类:object

用于分类像素的估计器。

参数:
clf分类器对象,可选

分类器对象,公开一个 fit 和一个 predict 方法,如 scikit-learn 的 API 中一样,例如 RandomForestClassifierLogisticRegression 分类器的实例。

features_func函数,可选

计算图像所有像素特征的函数,以传递给分类器。输出的形状应为 (m_features, *labels.shape)。如果为 None,则使用 skimage.feature.multiscale_basic_features()

方法

fit(image, labels)

使用部分标记(注释)的图像训练分类器。

predict(image)

使用训练好的内部分类器分割新图像。

compute_features

__init__(clf=None, features_func=None)[源代码]#
compute_features(image)[源代码]#
fit(image, labels)[源代码]#

使用部分标记(注释)的图像训练分类器。

参数:
imagendarray

输入图像,可以是灰度或多通道图像,并且必须具有与 self.features_func 兼容的维度数。

labels整数的 ndarray

image 兼容的标签数组(单通道图像的形状相同)。标签 >= 1 对应于训练集,标签 0 对应于要分割的未标记像素。

predict(image)[源代码]#

使用训练好的内部分类器分割新图像。

参数:
imagendarray

输入图像,可以是灰度或多通道图像,并且必须具有与 self.features_func 兼容的维度数。

引发:
如果 self.clf 尚未拟合,则引发 NotFittedError(使用 self.fit)。