import cv2 img1=cv2.imread('./data/img/mer.jpg') img2=cv2.imread('./data/img/20220207_144920.jpg') # 取出图片中所有值大于 233的 reddish = img2[:, :, 0] > 223 # 将 小于 223 的保留,大于 223的 全部置为 0 img2[reddish] = [0, 0, 0] # 另一张图中True False 跟 img2相反 reddish = (reddish == False) # 将 img1 中的 需要覆盖的区域,都置为 0 img1[reddish] = [0, 0, 0] # 将两张图片相加 img_mer = cv2.add(img1, img2) cv2.imwrite('img1.jpg', img1) cv2.imwrite('img2.jpg', img2) cv2.imwrite('mer.jpg', img_mer)
将图片1和图片2中的小人,叠加到background.jpg图片中。此方法是用> 223像素值,进行提取的,实际使用时,可自行调整。
效果:
background.jpg
图片1:
图片2:
合成效果: