python - 如何从具有透明背景的图像中制作二进制蒙版?
问题描述
我有一个基本的 OpenCV 问题。我有一个具有透明背景的图像,我想创建该图像的二进制蒙版,透明区域为黑色,对象为白色。您能否指导我如何开始这项任务或分享代码片段,这将非常有帮助。图像是:
我想要实现的是二进制掩码,透明区域为黑色,对象为白色。IE
提前致谢!
解决方案
这是在 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()
结果:
推荐阅读
- xml - Powershell CSV 到 XML
- c# - SimpleTcpClient 发送单字节和接收单字节不带分隔符
- cordova - “Ionic v4”-使用Phonegap构建的应用程序显示白屏
- sql-server - DTS 转换为 SSIS 派生列表达式
- java - JSON映射出现问题
- java - 将 JavaFX 应用程序与 openjdk 11 + 运行时捆绑在一起
- python - 无法以字符串格式方法更新 defaultdict
- python - MySQL 拒绝远程连接
- java - Jmeter+Jenkins+File 未找到异常
- c++ - 在模板函数中使用模板参数