OpenCV和Python:在图像上覆盖彩色蒙版

Wil*_* Li 8 python opencv roi mask

我想用黑白蒙版形状的透明纯色覆盖物覆盖图像

目前,我正在使用以下Java代码来实现此目的。

redImg = new Mat(image.size(), image.type(), new Scalar(255, 0, 0));
redImg.copyTo(image, mask);
Run Code Online (Sandbox Code Playgroud)

我对python api不熟悉。

所以我想知道python中是否有其他api。有没有更好的实现方法?

图片:

src img

面具:

面具

我想要的是:

我想要的是

Wil*_* Li 8

现在,在处理了所有这些Python,OpenCV和Numpy的东西之后,我发现用代码实现这一点非常简单:

image[mask] = (0, 0, 255)
Run Code Online (Sandbox Code Playgroud)

--------------原始答案--------------

我通过以下代码解决了这个问题:

redImg = np.zeros(image.shape, image.dtype)
redImg[:,:] = (0, 0, 255)
redMask = cv2.bitwise_and(redImg, redImg, mask=mask)
cv2.addWeighted(redMask, 1, image, 1, 0, image)
Run Code Online (Sandbox Code Playgroud)

  • 关于您更新的答案,我认为您仍然需要“addWeighted”,否则您不会覆盖透明度。 (2认同)