| import cv2 | |
| import numpy as np | |
| class combine: | |
| #Author: Alican Akca | |
| def __init__(self, size = (400,300),images = [],background_image = None): | |
| self.size = size | |
| self.images = images | |
| self.background_image = background_image | |
| def combiner(self,images,background_image): | |
| original = images[0] | |
| masked = images[1] | |
| background = cv2.resize(background_image,(images[0].shape[1],images[0].shape[0])) | |
| result = blend_images_using_mask(original, background, masked) | |
| return result | |
| def mix_pixel(pix_1, pix_2, perc): | |
| return (perc/255 * pix_1) + ((255 - perc)/255 * pix_2) | |
| def blend_images_using_mask(img_orig, img_for_overlay, img_mask): | |
| if len(img_mask.shape) != 3: | |
| img_mask = cv2.cvtColor(img_mask, cv2.COLOR_GRAY2BGR) | |
| img_res = mix_pixel(img_orig, img_for_overlay, img_mask) | |
| return cv2.cvtColor(img_res.astype(np.uint8), cv2.COLOR_BGR2RGB) |