如何使用蒙版图像裁剪图像并覆盖在具有相同颜色的其他图像之上?

How to crop image using masked image and overlay on top of other image with same color?

我正在尝试根据蒙版图像裁剪图像并将裁剪图像粘贴到新背景图像上。我能够做到这一点,但裁剪后的图像是灰色的,而不是原始图像中的彩色

从上图中可以看出裁剪后的图片颜色与原始源猫图像颜色不同,裁剪后的图像是灰色的,而在原始图像中它包含金黄色。

我的代码如下所示

import cv2
src1=cv2.imread('cat.jpg',0)
mask=cv2.imread('mask_cat.jpg',0)
ret, thresh1 = cv2.threshold(mask, 0, 255, cv2.THRESH_BINARY)
src1 [thresh1==0] = 0
h, w = src1.shape
red = (0, 0, 0)
width, height = 1742, 815
back =cv2.cvtColor( create_blank(width, height, rgb_color=red),cv2.COLOR_BGR2GRAY)
hh, ww = back.shape
yoff = round((hh-h)/2)
xoff = round((ww-w)/2)
result = back.copy()
result[yoff:yoff+h, xoff:xoff+w] = src1

如何在裁剪图像中获得与裁剪位置的原始源颜色相同的颜色?任何建议或帮助解决此问题将不胜感激。

import cv2
cat = cv2.imread('cat.jpg')
mask_cat = cv2.imread('mask_cat.jpg', 0)
result = cv2.bitwise_and(cat,cat,mask = mask_cat)

我也看到你尝试重塑 image.It 可以按如下方式完成。

width, height = 1742, 815
reshaped_result = cv2.resize(result, dsize=(width, height))

将裁剪后的图像放在调整后的图像上

width, height = 1742, 815
result_final = np.zeros((height,width,3), np.uint8)
h, w = result.shape[:2]
hh, ww = result_final.shape[:2]
yoff = round((hh-h)/2)
xoff = round((ww-w)/2)
result_final[yoff:yoff+h, xoff:xoff+w] = result