我有圖像messi.jpeg。我想用顏色替換像素(0,111,111)變爲透明messi.jpeg。 現在。我的代碼如下。在opencv python中如何特別像素透明?
img[np.where((img == [0,111,111]).all(axis = 2))] = [255,255,255]
我想要透明像素。現在它轉換爲白色
我有圖像messi.jpeg。我想用顏色替換像素(0,111,111)變爲透明messi.jpeg。 現在。我的代碼如下。在opencv python中如何特別像素透明?
img[np.where((img == [0,111,111]).all(axis = 2))] = [255,255,255]
我想要透明像素。現在它轉換爲白色
OpenCV不支持透明度(原生),對不起。
一種方法是add another channel to the image代表alpha通道。但是,OpenCV無法顯示RGBA圖像,因此加載RGBA image ignore the 4th channel以正確顯示它。
對於那些從Google來的人,上面的回答在編寫時可能是對的,但as the docs describe it is no longer accurate。將一個負值傳遞給imread會返回一個帶有alpha通道的數組。
在蟒蛇這樣做的工作:
>>> 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)