如何在opencv python中使特定像素透明?
我有图像mesi.jpeg。我想用颜色011111替换像素,使其在mesi.jpeg中透明。 现在我的代码如下如何在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
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)