当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python skimage.draw.bezier_curve用法及代码示例

用法:

skimage.draw.bezier_curve(r0, c0, r1, c1, r2, c2, weight, shape=None)

生成贝塞尔曲线坐标。

参数

r0, c0int

第一个控制点的坐标。

r1, c1int

中间控制点的坐标。

r2, c2int

最后一个控制点的坐标。

weight双倍的

中间控制点权重,说明线张力。

shape元组,可选

用于确定输出像素坐标的最大范围的图像形状。这对于超过图像大小的曲线很有用。如果没有,则使用曲线的全部范围。

返回

rr, cc(N,)int的ndarray

属于贝塞尔曲线的像素的索引。可用于直接索引到数组中,例如img[rr, cc] = 1

注意

该算法是参考 [1] 中介绍的有理二次算法。

参考

1

A Rasterizing Algorithm for Drawing Curves, A. Zingl, 2012 http://members.chello.at/easyfilter/Bresenham.pdf

例子

>>> import numpy as np
>>> from skimage.draw import bezier_curve
>>> img = np.zeros((10, 10), dtype=np.uint8)
>>> rr, cc = bezier_curve(1, 5, 5, -2, 8, 8, 2)
>>> img[rr, cc] = 1
>>> img
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
       [0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
       [0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
       [0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 1, 1, 1, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype=uint8)

相关用法


注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.draw.bezier_curve。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。