如何绘制线宽大于1像素的形状(椭圆,矩形,圆形等)

问题描述 投票:0回答:1

skimage.draw模块具有绘制圆,椭圆,线等的功能。但是,线宽似乎固定为1个像素。似乎没有设置线宽的参数。

[Stefan van der Walt建议在skimage.measure子模块中存在隐藏的功能,以绘制粗线,但是我看了一下文档,只看到了确实具有profile_line参数的linewidth函数。我不知道这是他的意思,还是我如何用它来绘制宽度为3的椭圆。

那么如何将一个3像素厚的椭圆绘制成一个numpy图像数组(float类型)?最好使用skimage。

width draw shapes scikit-image
1个回答
0
投票

我将使用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)

original(left) vs dilated(right)

© www.soinside.com 2019 - 2024. All rights reserved.