如何从具有透明背景的图像中制作二值蒙版?

-1 python opencv image image-processing image-segmentation

我有一个基本的 OpenCV 问题。我有一个具有透明背景的图像,我想创建该图像的二元蒙版,其中透明区域为黑色,对象为白色。您能否指导我如何开始这项任务或分享一个代码片段,这将非常有帮助。图像是:

透明背景图像

我想要实现的是二元蒙版,透明区域为黑色,物体为白色。IE

图像的二值掩模

提前致谢!

fmw*_*w42 6

这是在 Python/OpenCV 中执行此操作的一种方法。

  • 读取输入不变(以保留 Alpha 通道)
  • 提取 Alpha 通道
  • 设置 Alpha 通道的阈值
  • 保存结果

输入:

在此输入图像描述

import cv2
import numpy as np

# load image with alpha channel
img = cv2.imread('object.png', cv2.IMREAD_UNCHANGED)

# extract alpha channel
alpha = img[:, :, 3]

# threshold alpha channel
alpha = cv2.threshold(alpha, 0, 255, cv2.THRESH_BINARY)[1]

# save output
cv2.imwrite('object_alpha.png', alpha)

# Display various images to see the steps
cv2.imshow('alpha',alpha)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)


结果:

在此输入图像描述