如何在 python 中将 RGBA 图像转换为灰度图像?
How to convert an RGBA image to Grayscale in python?
我有形状数组 (height, width, 4)
,即 RGBA 格式,我想将其转换为灰度。原始数组的 RGB 值为 0,图片完全基于白色背景上的 alpha 值渲染,因此将其转换为灰度的传统方法失败(例如,cv2.cvtColor(img,cv2.COLOR_RGBA2GRAY)
)。
源图片:
假设:
你的图片总是黑白的;
白色定义为透明;
如果这些都是真的,那么你可以直接使用Alpha通道:
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()
如果你也可以有彩色图片,那我请你提供一张。
我有形状数组 (height, width, 4)
,即 RGBA 格式,我想将其转换为灰度。原始数组的 RGB 值为 0,图片完全基于白色背景上的 alpha 值渲染,因此将其转换为灰度的传统方法失败(例如,cv2.cvtColor(img,cv2.COLOR_RGBA2GRAY)
)。
源图片:
假设:
你的图片总是黑白的;
白色定义为透明;
如果这些都是真的,那么你可以直接使用Alpha通道:
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()
如果你也可以有彩色图片,那我请你提供一张。