1
我想了解this code這個切片是什麼意思[:,:,0]?
我無法理解這條線正在做什麼。流變量是一個流向量的陣列,每個像素在圖像中都有一個(所以是二維數組)。
fx, fy = flow[:, :, 0], flow[:, :, 1]
任何幫助,將不勝感激
我想了解this code這個切片是什麼意思[:,:,0]?
我無法理解這條線正在做什麼。流變量是一個流向量的陣列,每個像素在圖像中都有一個(所以是二維數組)。
fx, fy = flow[:, :, 0], flow[:, :, 1]
任何幫助,將不勝感激
讓我們先簡化的表達。您的代碼:
fx, fy = flow[:, :, 0], flow[:, :, 1]
等同於:
fx = flow[:, :, 0]
fy = flow[:, :, 1]
所以現在把它歸結於什麼flow[:, :, 0]
。這意味着flow
是一個numpy陣列至少有三個維度(讓我們定義N
作爲維數)。然後flow[:,:,0]
是一個N-1
維數組,我們總是選擇0
作爲第三維。
在圖像處理的上下文中,圖像通常是一個三維陣列(給定其具有顏色)與維度w
× h
× 3
(三個顏色通道)。因此,這意味着flow[:,:,0]
將生成w
× h
查看其中對於每個像素,我們選擇紅色通道(給定紅色通道是第一個通道)。
所以如果flow
是一個5 3矩陣,如:
>>> flow
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]],
[[12, 13, 14],
[15, 16, 17],
[18, 19, 20],
[21, 22, 23]],
[[24, 25, 26],
[27, 28, 29],
[30, 31, 32],
[33, 34, 35]],
[[36, 37, 38],
[39, 40, 41],
[42, 43, 44],
[45, 46, 47]],
[[48, 49, 50],
[51, 52, 53],
[54, 55, 56],
[57, 58, 59]]])
然後我們將獲得用於每個3元組的第一個元素,使得它:
>>> flow[:,:,0]
array([[ 0, 3, 6, 9],
[12, 15, 18, 21],
[24, 27, 30, 33],
[36, 39, 42, 45],
[48, 51, 54, 57]])
和由查詢flow[:,:,1]
,我們獲得:
>>> flow[:,:,1]
array([[ 1, 4, 7, 10],
[13, 16, 19, 22],
[25, 28, 31, 34],
[37, 40, 43, 46],
[49, 52, 55, 58]])
記住,這些觀點:如果你改變flow
,它將產生影響力的fx
和fy
以及,即使你以前做這些任務。
請參閱[numpy slicing](https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html)。 –
我已經閱讀過它,並且我認爲它說它會返回維度爲N-1的相應子數組,但我不太明白這意味着什麼,並且想知道是否有人可以用不同的方式解釋它? – cageyKJ