簡體   English   中英

從圖像numpy數組中刪除透明像素

[英]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操作呢?

與此相似嗎? https://stackoverflow.com/a/21017621/4747268

這應該起作用: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM