# python数字图像处理（12）：基本图形的绘制

1、画线条

skimage.draw.line(r1,c1,r2,c2)

r1,r2: 开始点的行数和结束点的行数

c1,c2: 开始点的列数和结束点的列数

`rr, cc =draw.line(1, 5, 8, 2)`

```from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc =draw.line(1, 150, 470, 450)
img[rr, cc] =255
plt.imshow(img,plt.cm.gray)```

skimage.draw.set_color(img, coords, color)

`draw.set_color(img,[rr,cc],[255,0,0])`

```from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc =draw.line(1, 150, 270, 250)
draw.set_color(img,[rr,cc],[0,0,255])
plt.imshow(img,plt.cm.gray)```

2、画圆

```from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.circle(150,150,50)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)```

3、多边形

Y为多边形顶点的行集合，X为各顶点的列值集合。

```from skimage import draw,data
import matplotlib.pyplot as plt
import numpy as np
img=data.chelsea()
Y=np.array([10,10,60,60])
X=np.array([200,400,400,200])
rr, cc=draw.polygon(Y,X)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)```

4、椭圆

```from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.ellipse(150, 150, 30, 80)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)```

5、贝塞儿曲线

y1,x1表示第一个控制点坐标

y2,x2表示第二个控制点坐标

y3,x3表示第三个控制点坐标

weight表示中间控制点的权重，用于控制曲线的弯曲度。

```from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.bezier_curve(150,50,50,280,260,400,2)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)```

6、画空心圆

```from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.circle_perimeter(150,150,50)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)```

7、空心椭圆

cy,cx表示圆心

```from skimage import draw,data
import matplotlib.pyplot as plt
img=data.chelsea()
rr, cc=draw.ellipse_perimeter(150, 150, 30, 80)
draw.set_color(img,[rr,cc],[255,0,0])
plt.imshow(img,plt.cm.gray)```

851 篇文章38 人订阅

0 条评论

## 相关文章

1053

4257

1046

### 原生JS | 导航底部横线跟随鼠标缓动

HTML5学堂（码匠）：在上周当中，我们用jQuery实现了 - 在导航底部存在一条横线，跟随着鼠标缓动到相应导航项 - 的特效，今天我们来讲讲原生JS的实现方...

6088

842

### 【Go 语言社区】HTML5 canvas验证码识别

canvas 的历史这个 HTML 元素是为了客户端矢量图形而设计的。它自己没有行为，但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把...

4764

### 从MapX到MapXtreme2004[11]-坐标概论

坐标的问题是Mapxtreme中最郁闷的问题，前几天在这上面耗了很多时间，没有搞定，今天又是不得不钻研，还好，小有心得。         1、...

2167

1414

3346

### Android自定义评分控件：RatingStarView

RatingStarView Android自定义的评分控件，类似RatingBar那样的，使用星星图标（full、half、empty）作为rating值的“...

3989