我正在嘗試構建一個示例來理解影像分割,給您一個形狀為 (1,2,2,3) 的影像,它是一個 2x2 影像,其中每個像素有 3 個數字,表示該像素屬于特定類別的概率. 我想要的是輸出(1,2,2,1),它是每個像素的類別,基于下面的概率值(選擇最高)代碼來顯示問題。
np.random.seed(2)
pixel=np.random.random((1,2,2,3)) #the image
pixel[0,0,1,:] #pixel(1,1) #with three classes probability it should belong to class 0
輸出
array([0.43532239, 0.4203678 , 0.33033482]) #0 is the heighest
我創建的面具
mask=pixel.argmax(-1)
mask=mask[...,np.newaxis] #shape (1,2,2,1)
現在我有了影像和蒙版,但我不知道如何選擇它
請告訴我如何解決這個問題,以及我可以在哪里學習這種切片并在 NumPy 中選擇。
你可以考慮一下
輸入:(1,2,2,3)影像,每個像素具有三個類和(1,2,2,1)要選擇的類
輸出:(1,2,2,1) 每個像素只有一個類的影像
uj5u.com熱心網友回復:
我想你想使用:
np.take_along_axis(pixel, mask, axis = -1)
您還可以通過以下方式在不使用掩碼的情況下獲得相同的結果:
pixel.max(axis = -1, keepdims = True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/473529.html
