如何在Python中将RGBA图像转换为灰度图像?

2024-01-12

我有形状数组(height, width, 4),即 RGBA 格式,我想将其转换为灰度。原始数组的 RGB 值为 0,并且图片完全基于白色背景上的 alpha 值进行渲染,因此将其转换为灰度的传统方法会失败(例如,cv2.cvtColor(img,cv2.COLOR_RGBA2GRAY)).

源图片:


假设:

  • 你的形象永远是黑白的;

  • 白色被定义为透明;

如果这些都是真的,那么您可以使用 Alpha 通道directly:

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)
img_gray = 255 - img[:, :, 3]

plt.imshow(img_gray, cmap='gray', vmin=0, vmax=255)
plt.show()

如果您还可以有彩色图像,那么我会请您提供一张。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中将RGBA图像转换为灰度图像? 的相关文章

随机推荐