img1和img2图片size和type都一样
代码:
import numpy as np
import cv2
#照片读取
img1 = cv2.imread("img1.jpg")
img2 = cv2.imread("img2.jpg")
img2 = cv2.resize(img2,dsize=(755,359))
#建立窗口
cv2.namedWindow("task")
#设置颜色提取阈值,绿色
color_dist = {'green': {'Lower': np.array([26, 104, 85]), 'Upper': np.array([100, 255, 255])}}
#将RGB图片转换为HSV图像
hsv = cv2.cvtColor(img1, cv2.COLOR_RGB2HSV)
background_mask = cv2.inRange(hsv, color_dist['green']['Lower'], color_dist['green']['Upper'])
#像素反转
person_mask = ~background_mask
#将人像进行mask处理,得到需要添加的背景
scenic_img = cv2.add(img2,background_mask)
#mask只有0和1,得到去除绿色背景后的人像
person_img = cv2.add(img1,person_mask)
result = cv2.add(scenic_img,person_img)
cv2.imshow('result',result)
相似问题