python+Opencvによる画像処理5(画像結合とマスク)
1.重み付け
import cv2 import numpy as np im1 = cv2.imread("lena.jpg") im2 = cv2.imread("lenna-image.jpg") alpha = 0.5 beta = 0.3 add = cv2.addWeighted(im1,alpha,im2,beta,0) cv2.imwrite('add.jpg',add)
alphaとbetaの数値で重み付けして合成可能
同一サイズの画像が必要
2. マスク
import cv2 import numpy as np def mask_test(im): if im.ndim == 2: pass else : hight = im.shape[0] width = im.shape[1] mask1 =np.zeros((hight,width,1),np.uint8) mask1[0:hight,0:width]= 255 mask1[260:300,240:380]=0 res = cv2.bitwise_and(im,im,mask=mask1) cv2.imshow("",res) cv2.waitKey(0) cv2.destroyAllWindows() if __name__ == '__main__': im = cv2.imread("lena.jpg") if not (im == None): mask_test(im)
cv2.bitwise_and(画像1,画像2,mask=マスク画像) #画像1と画像2を合体させ、マスク画像で一部不可視に