gpt4 book ai didi

python - 从二进制掩码裁剪图像

转载 作者:行者123 更新时间:2023-12-02 17:21:53 25 4
gpt4 key购买 nike

我正在尝试使用 DeepLab v3 来检测对象并掩盖实际对象所在的位置。
DeepLab 模型生成 resized_im (3D)和面具seg_map (2D) 0 和非零值,0 表示它是背景。

目前,只能在对象上绘制带有覆盖蒙版的图像。我想从 resized_im 中裁剪出对象具有透明背景。对工作有什么建议吗?

您可以在此处使用笔记本:
https://colab.research.google.com/drive/138dTpcYfne40hqrb13n_36okSGYhrJnz?usp=sharing&hl=en#scrollTo=p47cYGGOQE1W&forceEdit=true&sandboxMode=true

我在这里也试过:How to crop image based on binary mask但似乎没有一个适用于我的情况

最佳答案

您只需要将分割掩码转换为 bool numpy 数组,然后将图像乘以它。不要忘记您的图像有 3 个 channel ,而掩码只有 1 个。它可能看起来像这样:

# seg_map - segmentation mask from network, resized_im - your input image
mask = np.greater(seg_map, 0) # get only non-zero positive pixels/labels
mask = np.expand_dims(mask, axis=-1) # (H, W) -> (H, W, 1)
mask = np.concatenate((mask, mask, mask), axis=-1) # (H, W, 1) -> (H, W, 3), (don't like it, so if you know how to do it better, please let me know)
crops = resized_im * mask # apply mask on image

如果要选择某些标签,可以使用不同的逻辑 numpy 函数,例如:
mask = np.equal(seg_map, 5) # to get only objects with label 5

关于python - 从二进制掩码裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61785317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com