Unverified 提交 85ae985b authored 作者: Vladislav Veklenko's avatar Vladislav Veklenko 提交者: GitHub

update mask2segments and saving results (#9785)

* update mask2segments and saving results * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update general.py Signed-off-by: 's avatarGlenn Jocher <glenn.jocher@ultralytics.com> * Update predict.py Signed-off-by: 's avatarGlenn Jocher <glenn.jocher@ultralytics.com> Signed-off-by: 's avatarGlenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: 's avatarpre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: 's avatarGlenn Jocher <glenn.jocher@ultralytics.com>
上级 7a69035e
...@@ -126,9 +126,12 @@ def masks2segments(masks, strategy='largest'): ...@@ -126,9 +126,12 @@ def masks2segments(masks, strategy='largest'):
segments = [] segments = []
for x in masks.int().cpu().numpy().astype('uint8'): for x in masks.int().cpu().numpy().astype('uint8'):
c = cv2.findContours(x, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[0] c = cv2.findContours(x, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[0]
if strategy == 'concat': # concatenate all segments if c:
c = np.concatenate([x.reshape(-1, 2) for x in c]) if strategy == 'concat': # concatenate all segments
elif strategy == 'largest': # select largest segment c = np.concatenate([x.reshape(-1, 2) for x in c])
c = np.array(c[np.array([len(x) for x in c]).argmax()]).reshape(-1, 2) elif strategy == 'largest': # select largest segment
c = np.array(c[np.array([len(x) for x in c]).argmax()]).reshape(-1, 2)
else:
c = np.zeros((0, 2)) # no segments found
segments.append(c.astype('float32')) segments.append(c.astype('float32'))
return segments return segments
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论