Python中skimage.draw.line()函数的用处和示例
发布时间:2023-12-19 01:25:11
skimage.draw.line()函数是scikit-image库中的一个函数,用于在图像上绘制直线。
这个函数的调用格式如下:
skimage.draw.line(image, start, end, color=None, thickness=1)
参数说明:
- image:要绘制直线的图像(可以是多通道的)
- start:直线的起点坐标,格式为(x1, y1)
- end:直线的终点坐标,格式为(x2, y2)
- color:绘制直线的颜色,默认为None,即黑色
- thickness:直线的宽度,默认为1
使用示例:
import numpy as np
import matplotlib.pyplot as plt
from skimage.draw import line
# 创建一个空白图像
image = np.zeros((300, 300), dtype=np.uint8)
# 定义起点和终点坐标
start = (50, 100)
end = (250, 200)
# 绘制直线
rr, cc = line(start[1], start[0], end[1], end[0])
image[rr, cc] = 255
# 显示图像
plt.imshow(image, cmap='gray')
plt.axis('off')
plt.show()
运行上述代码,将会在一张空白的300x300像素的图像上绘制一条从起点(50, 100)到终点(250, 200)的直线。绘制的结果如下所示:

除了绘制单条直线,skimage.draw.line()函数还可以同时绘制多条直线。只需将起点坐标和终点坐标分别存储为两个数组,然后通过循环遍历这些坐标对即可。
import numpy as np
import matplotlib.pyplot as plt
from skimage.draw import line
# 创建一个空白图像
image = np.zeros((300, 300), dtype=np.uint8)
# 定义起点和终点坐标列表
starts = [(50, 100), (100, 50), (150, 200)]
ends = [(250, 200), (200, 250), (200, 100)]
# 绘制直线
for start, end in zip(starts, ends):
rr, cc = line(start[1], start[0], end[1], end[0])
image[rr, cc] = 255
# 显示图像
plt.imshow(image, cmap='gray')
plt.axis('off')
plt.show()
上述代码将使用一个循环绘制三条直线,效果如下图所示:

skimage.draw.line()函数可以在图像处理中用于绘制线条、边界等标记。例如,在目标检测任务中,可以使用该函数在图像上绘制检测到的目标框。
