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


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


用法:

skimage.draw.circle_perimeter(r, c, radius, method='bresenham', shape=None)

生成圆周长坐标。

参数

r, cint

圆的中心坐标。

radiusint

圆的半径。

method{‘bresenham’, ‘andres’},可选

bresenham:Bresenham 方法(默认) andres:Andres 方法

shape元组,可选

用于确定输出像素坐标的最大范围的图像形状。这对于超过图像大小的圆圈很有用。如果没有,则使用圆的完整范围。长度必须至少为 2。只有前两个值用于确定输入图像的范围。

返回

rr, cc(N,)int的ndarray

Bresenham 和 Andres 的方法:属于圆周长的像素的索引。可用于直接索引到数组中,例如img[rr, cc] = 1

注意

安德烈斯方法具有同心圆形成圆盘的优点,而布雷森汉姆可以制造孔。旋转安德烈斯圆时失真也较小。 Bresenham 方法也称为中点圆算法。 circle_perimeter_aa 提供抗锯齿圆生成器。

参考

1

J.E. Bresenham, “Algorithm for computer control of a digital plotter”, IBM Systems journal, 4 (1965) 25-30.

2

E. Andres, “Discrete circles, rings and spheres”, Computers & Graphics, 18 (1994) 695-706.

例子

>>> from skimage.draw import circle_perimeter
>>> img = np.zeros((10, 10), dtype=np.uint8)
>>> rr, cc = circle_perimeter(4, 4, 3)
>>> img[rr, cc] = 1
>>> img
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 1, 1, 1, 0, 0, 0, 0],
       [0, 0, 1, 0, 0, 0, 1, 0, 0, 0],
       [0, 1, 0, 0, 0, 0, 0, 1, 0, 0],
       [0, 1, 0, 0, 0, 0, 0, 1, 0, 0],
       [0, 1, 0, 0, 0, 0, 0, 1, 0, 0],
       [0, 0, 1, 0, 0, 0, 1, 0, 0, 0],
       [0, 0, 0, 1, 1, 1, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype=uint8)

相关用法


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