黑色背景也会被复制,因为你将整个裁剪粘贴到你的图像中:
im2r[153: 153 + 324,
580: 580 + 256] = im2r_title
但由于你的标题是在一个漂亮的黑色背景上,你只能复制照片中那些从黑色中突出的部分。裁剪的这些部分将具有不同于[0 0 0]的rgb代码。
实现可能是这样的(我使用了你的屏幕截图和一些不同的裁剪位置):
im2r[153: 153 + 70,
280: 580 + 200,
] = np.where(im2r_title < [100, 100, 100], im2r[153: 153 + 70,
280: 580 + 200,
], im2r_title)
魔法是由
np.where(im2r_title < [100, 100, 100],...
在这里,我告诉numpy只替换im2r图片中颜色“小于”[100100100]的像素。这意味着黑色/深灰色区域不会粘贴到您的图像上。(图像下方的整个代码)
import cv2
import numpy as np
image_2_replace = cv2.imread("92K7B.png")
im2r = cv2.cvtColor(image_2_replace, cv2.COLOR_BGR2RGB)
image_2_title_img = cv2.imread("J33EF.png")
image_2_titl_img = cv2.cvtColor(image_2_title_img, cv2.COLOR_BGR2RGB)
im2r_title = image_2_titl_img[250:320, 200:400]
cv2.imshow("image_2_title_img",im2r_title)
# take the coordinate of the location where i need to put the text screenshot and add it over the image.
im2r[153: 153 + 70,
280: 580 + 200,
] = np.where(im2r_title < [100, 100, 100], im2r[153: 153 + 70,
280: 580 + 200,
], im2r_title)
cv2.imshow("image_2_title_img",im2r)
cv2.waitKey(0)