Pytorch'ta RGB'ye 3 boyutlu maske uygulamanın vektörel yolu

Aug 18 2020

Bir RGB görüntüsünü temsil eden bir HxWx3 tensörüm ve girdi olarak bir HxWx3 maskesi (boolean) tensörüm var. Maske tensöründeki her (i, j) için tam olarak bir gerçek değer olduğu varsayılır (bu, tam olarak R \ G \ B değerlerinden biridir). Bir HxW (veya HxWx1) tensör V ile sonuçlanacak şekilde maskeyi resme uygulamak istiyorum, burada V [i, j] = 'maskeye göre eşleşen R \ G \ B değeri'.

Uyuşmuş bir RGB görüntüsüne ikili maske uygulama sorunu kullanma Aşağıdakileri başarabildim:

>>> X*mask
tensor([[[ 9., 10.],
         [ 0.,  0.]],

        [[ 0.,  0.],
         [ 0., 20.]],

        [[ 0.,  0.],
         [30.,  0.]]])

Ancak belirtildiği gibi, sonuç olarak HxWx3 yerine tek bir dim HxW istiyorum.

İllüstrasyon:

Yanıtlar

4 Mercury Aug 18 2020 at 18:31

Her bir i, j için yalnızca tek bir R / G / B değerinin korunduğunu varsayarsak, şunları yapabilirsiniz:

(X*mask).sum(axis=2)

Bu size istediğiniz (HxW) çıktıyı vermelidir.