如何更改仅白色像素的背景?

时间:2017-10-07 14:18:41

标签: python opencv cv2

我有两个相同大小的灰度图像,其中一个是这个:enter image description here

我正在尝试为此图像添加背景,这只是将白色像素更改为另一个图片中的相应像素。我设法做的最好的结果只是两个图片的按位和所有像素,但结果图片在詹姆斯邦德内部扭曲。我也尝试在两张图片之间加权添加但是当我增加詹姆斯邦德图像的重量时,它的白色像素在结果图像中可见。

1 个答案:

答案 0 :(得分:0)

要与第二张图像合并,请确保两张图像具有相同的尺寸(与您的尺寸相同)。然后可以合并它们

import cv2

img_jb = cv2.imread('james_bond.png')    
img_007 = cv2.imread('007_logo.png')

height, width, channels = img_jb.shape
img_007_resized = cv2.resize(img_007, (width, height), interpolation=cv2.INTER_CUBIC)

threshold = img_jb > 240
img_jb[threshold] = img_007_resized[threshold]

cv2.imwrite('james_bond_logo.png', img_jb)

给你:

combined image

numpy允许您处理与给定条件匹配的数组的索引。这样可以将像素从背景图像复制到前景图像中,前景图像的值高于240