[英]Remove transparent pixels from an image numpy array
我有一個圖像的numpy形狀數組(224,224,4)。 每個像素具有4維-r,g,b,alpha。 我需要提取其alpha通道為255的每個像素的(r,g,b)值。
我想先刪除alpha值小於255的數組中的所有元素,然后僅提取其余元素的前3個值(r,g,b),但是在Python中的簡單循環中這樣做非常慢。 有沒有一種快速的方法來使用numpy操作呢?
這應該起作用: arr[arr[:,:,3]==255][:,:,:3]
這樣的東西?
import numpy as np
x = np.random.random((255,255,4))
y = np.where(x[:,:,3] >0.5)
res = x[y][:,0:3]
您必須使> 0.5
滿足您的需求(例如==255
)。 結果將是所有像素垂直堆疊的矩陣
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.