如何在 OpenCV-Python 中打开带有 alpha 通道的图像?

Jar*_*man 5 python opencv

我正在尝试使用 python3 cv2 库将图像上的某些像素设置为透明。如何打开图像以使其支持透明度?

我对此进行了研究,但找不到有关使用透明像素的良好文档。

我当前打开图像的方式如下:

img = cv2.resize(cv2.imread("car.jpeg", cv2.COLOR_B), (0, 0), fx=0.2, fy=0.2)

我设置的颜色是这样的:

img.itemset((r, c, 1), val)

如何编辑 Alpha 通道?

Mar*_*ell 6

您可以使用以下命令打开已有 Alpha 通道的图像,例如 PNG 或 TIFF:

im = cv2.imread('image.png', cv2.IMREAD_UNCHANGED) 
Run Code Online (Sandbox Code Playgroud)

你会看到它的形状的最后一个维度是 4:

print(im.shape)
(400, 400, 4)
Run Code Online (Sandbox Code Playgroud)

或者您可以打开一张没有 Alpha 通道的图像(例如 JPEG),然后自己添加一个:

BGR = cv2.imread('image.jpg', cv2.IMREAD_UNCHANGED)

BGRA = cv2.cvtColor(im,cv2.COLOR_BGR2BGRA) 
Run Code Online (Sandbox Code Playgroud)

无论哪种情况,您都可以使用以下命令在 Alpha 通道中设置值:

BGRA[y,x,3] = ...
Run Code Online (Sandbox Code Playgroud)

然后,最后将图像保存为明显支持 Alpha/透明度的格式,例如 TIFF、PNG、GIF。