簡體   English   中英

numpy從3d數組中刪除2d索引

[英]Numpy delete 2d index from 3d array

我有RGB圖像3d數組,當我應用np時,我想刪除那里2d位置標識的特定像素。刪除輸出后無法重新整形為3d數組,例如:

indices = [(23, 21),(24, 22),(23, 23),(23, 24),(23, 25),(22, 26)]

I = np.empty(ImageRGB.shape())

I = np.delete(ImageRGB,obj=indices)    

問題:由於第三個顏色通道,無法重新調整“ I”形狀。

如何刪除帶有顏色通道的索引中的元素

np.delete實際上是要刪除數組的各個部分,但這可能不是您要從圖像中刪除像素時要執行的操作。 相反,您可能希望將這些像素設置為某個“背景”值,取決於黑色( [0, 0, 0] )或白色(可能[255, 255, 255] [1, 1, 1][255, 255, 255] ,具體取決於圖片的編碼方式)。

您可以使用NumPy的索引設置這些值; 例如:

image_rgb = np.random.rand(30, 30, 3)
indices = [(23, 21),(24, 22),(23, 23),(23, 24),(23, 25),(22, 26)]

i, j = zip(*indices)
image_rgb[i, j] = [0, 0, 0] # set values to black

我嘗試了一個解決方案,並且工作正常。 在對每個圖像應用np.delet之后,我將圖像分為三個顏色通道,並再次重新組合它們。

謝謝大家 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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