Her biri bir görüntüyü (x, y, rgb) temsil eden iki 3B uyuşuk dizilim var. Daha küçük görüntüyü herhangi bir macenta piksel (255, 0, 255) hariç olmak üzere büyük resme yazmak istiyorum. Tüm macenta piksellerini temsil eden bir 2D maskenin nasıl oluşturulacağını biliyorum - bu 2D maskeyi bir 3D dizi işleminde nasıl kullanabilirim?2B maskesini kullanarak daha büyük bir 3B dizinin bir dilimine 3B numpy dizisi yazmak
0
A
cevap
2
İşte bir örnek. Tam olarak doğru değil (tüm değerler bir ya da ikidir), ancak fikir verir. Umarım bu senin durumundaki çalışır:
image1 = np.ones((5,5,16))
image2 = 2 * np.ones((3,3,16))
mask = np.array([[0, 1, 1], [0, 0, 1], [1, 0, 0]])
x, y = np.where(mask)
image1[1:4,1:4,:][x,y,:] = image2[x,y,:]
(. 1:4,1:4
büyük resim içindeki alt imge konumudur) numpypy bu kullanmaya çalışıyorum olanlar için
, işe yaramaz - görünüşe göre [1 -arg henüz uygulanmadı.] (https://bitbucket.org/pypy/numpy/issues/41/implementation-of-1-arg-numpywhere) Pypy'nin daha iyi bir destek şansı olduğu başka bir yöntem var mı? –