[英]Binary mask from two segmentation curves
两个分割曲线以1-d numpy数组形式存储在r2(图像中的底线)和r1(图像中的上线)中。 我正在尝试创建一个二进制掩码。 除两条曲线内的区域外,其他所有地方均为黑色:白色。 到目前为止,我已经尝试了以下代码,该代码适用于直线,但不适用于基于另一个stackoverflow答案的曲线:
def line_func(col, s, e):
return (s + (e - s) * col / im.shape[1]).astype(np.int)
r1, r2 = [20, 25], [30, 35]
rows, cols = np.indices(im.shape)
m1 = np.logical_and(rows > line_func(cols, *r1),
rows < line_func(cols, *r2))
im+= 255 * (m1)
plt.imshow(im, cmap='gray')
从两条曲线的点创建一个多边形,然后使用该多边形填充白色区域。 如果我们将曲线视为一组X值,然后视为两组不同的Y值,则应执行以下操作:
from matplotlib.patches import Polygon
X = ...
Y1, Y2 = ...
points = list(zip(X, Y1)) + list(reversed(zip(X, Y2)))
polygon = Polygon(points)
# Now fill the polygon with one color, and everything else with a different color
在此处查看有关matplotlib中的排水多边形的更多信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.