affine_transform#
- scipy.ndimage.affine_transform(input, matrix, offset=0.0, output_shape=None, output=None, order=3, mode='constant', cval=0.0, prefilter=True)[原始碼]#
套用仿射轉換。
給定輸出影像像素索引向量
o
,像素值由輸入影像在位置np.dot(matrix, o) + offset
決定。這執行「拉取」(或「反向」)重新取樣,將輸出空間轉換到輸入以定位資料。仿射轉換通常以「推播」(或「正向」)方向描述,將輸入轉換到輸出。如果您有「推播」轉換的矩陣,請在此函數中使用其反矩陣 (
numpy.linalg.inv
)。- 參數:
- inputarray_like
輸入陣列。
- matrixndarray
反向座標轉換矩陣,將輸出座標映射到輸入座標。如果
ndim
是input
的維度數,則給定的矩陣必須具有以下形狀之一(ndim, ndim)
:每個輸出座標的線性轉換矩陣。(ndim,)
:假設 2D 轉換矩陣是對角的,對角線由給定值指定。然後使用更有效率的演算法,利用問題的可分離性。(ndim + 1, ndim + 1)
:假設轉換是使用齊次座標指定的 [1]。在這種情況下,傳遞給offset
的任何值都會被忽略。(ndim, ndim + 1)
:如上,但齊次轉換矩陣的底行始終為[0, 0, ..., 1]
,並且可以省略。
- offsetfloat 或 sequence,可選
轉換應用於陣列的偏移量。如果為 float,offset 對於每個軸都相同。如果為 sequence,offset 應包含每個軸一個值。
- output_shapetuple of ints,可選
形狀元組。
- outputarray 或 dtype,可選
放置輸出的陣列,或返回陣列的 dtype。預設情況下,將建立與輸入相同 dtype 的陣列。
- orderint,可選
樣條插值的階數,預設為 3。階數必須在 0-5 範圍內。
- mode{‘reflect’, ‘grid-mirror’, ‘constant’, ‘grid-constant’, ‘nearest’, ‘mirror’, ‘grid-wrap’, ‘wrap’},可選
mode 參數決定輸入陣列如何在其邊界之外延伸。預設值為 ‘constant’。每個有效值的行為如下(請參閱 邊界模式 上的其他圖和詳細資訊)
- ‘reflect’ (d c b a | a b c d | d c b a)
輸入透過在最後一個像素的邊緣反射來延伸。此模式有時也稱為半樣本對稱。
- ‘grid-mirror’
這是 ‘reflect’ 的同義詞。
- ‘constant’ (k k k k | a b c d | k k k k)
輸入透過用相同的常數值填充邊緣之外的所有值來延伸,常數值由 cval 參數定義。在輸入邊緣之外不執行插值。
- ‘grid-constant’ (k k k k | a b c d | k k k k)
輸入透過用相同的常數值填充邊緣之外的所有值來延伸,常數值由 cval 參數定義。插值也發生在輸入範圍之外的樣本。
- ‘nearest’ (a a a a | a b c d | d d d d)
輸入透過複製最後一個像素來延伸。
- ‘mirror’ (d c b | a b c d | c b a)
輸入透過在最後一個像素的中心反射來延伸。此模式有時也稱為全樣本對稱。
- ‘grid-wrap’ (a b c d | a b c d | a b c d)
輸入透過環繞到相對邊緣來延伸。
- ‘wrap’ (d b c d | a b c d | b c a b)
輸入透過環繞到相對邊緣來延伸,但方式使得最後一點和初始點完全重疊。在這種情況下,在重疊點選擇哪個樣本未明確定義。
- cvalscalar,可選
如果 mode 為 ‘constant’,則填充輸入邊緣過去的值。預設值為 0.0。
- prefilterbool,可選
決定是否在插值之前使用
spline_filter
預先過濾輸入陣列。預設值為 True,如果order > 1
,這將建立一個暫時的 float64 過濾值陣列。如果將此設定為 False,則如果order > 1
,輸出將會稍微模糊,除非輸入已預先過濾,即它是呼叫spline_filter
於原始輸入的結果。
- 返回:
- affine_transformndarray
轉換後的輸入。
註解
給定的矩陣和偏移量用於找到輸出中每個點在輸入中的對應座標,透過仿射轉換。輸入在這些座標處的值由請求階數的樣條插值決定。輸入邊界外的點根據給定模式填充。
在版本 0.18.0 中變更:先前,仿射轉換的確切解釋取決於矩陣是以 1D 陣列還是 2D 陣列形式提供。如果將 1D 陣列提供給 matrix 參數,則索引
o
處的輸出像素值由位置matrix * (o + offset)
處的輸入影像決定。對於複數值 input,此函數獨立轉換實部和虛部。
在版本 1.6.0 中新增:新增複數值支援。
參考文獻