python3 + cv2のwarpAffineで画像を動かした時の、背景の塗りつぶし方
python3.6 と cv2で画像の水増し(augmentation)をしたいときに、背景を白で塗りつぶすのがすぐに検索で見つからなかったからノートを書きます。
#augmentation.py
import cv2
import numpy as np
img = cv2.imread('trainingData/balls/ball1.jpg', 1)
rows,cols,z = img.shape
for i in range(49):
M = np.float32([[1,0,-2*(i+1)],[0,1,0]])
new = cv2.warpAffine(img,M,(cols,rows),borderValue=(255, 255, 255))
cv2.imwrite('trainingData/balls/ball'+str(i+2)+'.jpg', new)
warpAffineのborderValueに色をRGBで指定して移動した後の埋め合わせを決めます。
色指定だけじゃなく、borderModeを別途指定することで、いろんな埋め合わせができるらしい。cv2 borderModeで調べてみてください。
この記事が気に入ったらサポートをしてみませんか?