-1
我有两个相同大小的灰度图像,其中之一是这一个:如何更改仅白色像素的背景?
我想为此图像添加背景,即将白色像素更改为相应像素其他图片。我设法做到的最好结果只是两个图像的所有像素的位和像,但由此产生的图像在詹姆斯邦德内部被扭曲。我也尝试了两张图片之间的加权加法,但是当我增加詹姆士邦德图片的权重时,白色像素在结果图像中可见。
我有两个相同大小的灰度图像,其中之一是这一个:如何更改仅白色像素的背景?
我想为此图像添加背景,即将白色像素更改为相应像素其他图片。我设法做到的最好结果只是两个图像的所有像素的位和像,但由此产生的图像在詹姆斯邦德内部被扭曲。我也尝试了两张图片之间的加权加法,但是当我增加詹姆士邦德图片的权重时,白色像素在结果图像中可见。
要与第二张图片合并,请确保两张图片的尺寸相同(您的尺寸相同)。然后,他们可以结合
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)
给你:
numpy的允许您在一个阵列的匹配给定条件的索引工作。这具有将背景图像中的像素复制到前景图像中的效果,其中前景图像具有大于240
的值。
这适用于我,但我有围绕图的白色轮廓的问题。 – ninesalt
去除白边比较复杂。这将需要创建一个合适的面具和羽化边缘。这可以使用OpenCV函数完成,但不能轻松使用纯粹的numpy功能。 –