作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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
mask = np.equal(seg_map, 5) # to get only objects with label 5
关于python - 从二进制掩码裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61785317/
我是一名优秀的程序员,十分优秀!