如何在opencv python中使特定像素透明?

如何在opencv python中使特定像素透明?,python,python-2.7,opencv,image-processing,Python,Python 2.7,Opencv,Image Processing,我有图像mesi.jpeg。我想用颜色011111替换像素,使其在mesi.jpeg中透明。 现在我的代码如下 img[np.where((img == [0,111,111]).all(axis = 2))] = [255,255,255] 我想要透明像素。现在它已转换为白色OpenCV本机不支持透明度,抱歉 一种方法是表示alpha通道。但是,OpenCV无法显示RGBA图像,因此在加载时,必须正确显示图像。对于来自谷歌的用户,上面的答案在编写时可能是正确的,但是。将负值传递给imrea

我有图像mesi.jpeg。我想用颜色011111替换像素,使其在mesi.jpeg中透明。 现在我的代码如下

 img[np.where((img == [0,111,111]).all(axis = 2))] = [255,255,255]
我想要透明像素。现在它已转换为白色

OpenCV本机不支持透明度,抱歉


一种方法是表示alpha通道。但是,OpenCV无法显示RGBA图像,因此在加载时,必须正确显示图像。

对于来自谷歌的用户,上面的答案在编写时可能是正确的,但是。将负值传递给imread将返回带有alpha通道的数组

在python中,这就是工作:

>>> im = cv2.imread('sunny_flat.png', -1)
>>> im
array([[[ 51,  44,  53, 255],
    [ 46,  40,  46, 255],
    [ 40,  31,  36, 255],
    ..., 
    [ 24,  26,  36, 255],
    [ 26,  28,  39, 255],
    [ 15,  17,  27, 255]]], dtype=uint8)
>>> im[0][0] = np.array([0,0,0,0], np.uint8)
>>> im
array([[[  0,   0,   0,   0],
    [ 46,  40,  46, 255],
    [ 40,  31,  36, 255],
    ..., 
    [ 24,  26,  36, 255],
    [ 26,  28,  39, 255],
    [ 15,  17,  27, 255]]], dtype=uint8)