skimage.draw模块具有绘制圆,椭圆,线等的功能。但是,线宽似乎固定为1个像素。似乎没有设置线宽的参数。
[Stefan van der Walt建议在skimage.measure子模块中存在隐藏的功能,以绘制粗线,但是我看了一下文档,只看到了确实具有profile_line
参数的linewidth
函数。我不知道这是他的意思,还是我如何用它来绘制宽度为3的椭圆。
那么如何将一个3像素厚的椭圆绘制成一个numpy图像数组(float类型)?最好使用skimage。
我将使用draw
绘制1像素粗的线,然后使用skimage.morphology.dilation
“加粗”该线:
import numpy as np
import matplotlib.pyplot as plt
from skimage import draw, morphology
image = np.zeros((128, 128))
rr, cc = draw.ellipse_perimeter(64, 64, 20, 10)
image[rr, cc] = 1
dilated = morphology.dilation(image, morphology.disk(radius=1))
fig, (ax0, ax1) = plt.subplots(1, 2)
ax0.imshow(image)
ax1.imshow(dilated)