Numpy配列の部分置き換え【画像の部分貼り付け】

python コンピュータ
python
Numpy配列の一部を他の配列で置き換えます。Numpy配列を画像データとして扱う場合、以下のサンプルはグレースケールで10×10の白色で塗りつぶされた画像に、3×4の黒色で塗りつぶされた画像を座標x:1座標y:1位置に貼り付ける結果になります。
#!/usr/bin/env python3

# 
# 一部を置き換える
# 

import numpy as np

data = np.full((10,10), 255, 'uint8')

rep = np.zeros((3,4), 'uint8')

y = 1 # 置き換え座標y
x = 1 # 置き換え座標x
h, w =rep.shape[:2]
data[y:y+h,x:x+w] = rep

print(data)
#[[255 255 255 255 255 255 255 255 255 255]
# [255   0   0   0   0 255 255 255 255 255]
# [255   0   0   0   0 255 255 255 255 255]
# [255   0   0   0   0 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]
# [255 255 255 255 255 255 255 255 255 255]]
置き換える領域をスライスで表現しています。

コメント