簡體   English   中英

numpy 將數組寬度調整為零

[英]numpy resize array width by zeros

我是 R 的典型用戶,但在 python 中我被卡住了。

我有很多圖像保存為 NumPy 數組我需要將數組/圖像的填充調整為 4k 分辨率,從在16202800之間振盪的不同寬度,高度是恆定的: 2160

我需要將每個數組/圖像的焊盤大小調整為3840*2160 ,即。 在左右兩側添加黑色邊框,使數組/圖像本身保持不變。

為了調整大小,我嘗試了這個,但代碼在所有邊都添加了黑色邊緣。

arr = np.array([[1,1,1],[1,1,1],[1,1,1],[1,1,1]])
FinalWidth = 20 

def pad_with(vector, pad_width, iaxis, kwargs):
    pad_value = kwargs.get('padder', 0)
    vector[:pad_width[0]] = pad_value

arr2 = np.pad(arr,FinalWidth/2,pad_with)

我認為你只需要hstack ,假設你想要一半寬度到 go 兩側:

def pad_with(vector, pad_width):
    temp = np.hstack((np.zeros((vector.shape[0], pad_width//2)), vector))
    return np.hstack((temp, np.zeros((vector.shape[0], pad_width//2))))
arr2 = pad_with(arr,FinalWidth)
arr2 
>>> array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 0., 0., 0.,
        0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 0., 0., 0.,
        0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 0., 0., 0.,
        0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 0., 0., 0.,
        0., 0., 0., 0., 0., 0., 0.]])
arr2.shape
>>> (4, 23)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM