[英]How to mask out the object from the image?
我有一个带有二进制掩码的 256X256 的 RGB 图像。 我想借助掩码从主图像中删除 object 并保留 rest 背景。
我已经尝试过使用下面的代码,但它没有用。
谁能让我知道我在哪里犯了错误?
import cv2
import numpy as np
# read image
img = cv2.imread('image.jpg')
mask2 = cv2.imread('mask.jpg') / 1
# mask by multiplication, clip to range 0 to 255 and make integer
result2 = (img * mask2).clip(0, 255).astype(np.uint8)
# save results
cv2.imwrite('result.png', result1)
图片,面具:
Output 我想要,我得到的结果:
您需要使用cv2.bitwise_and
来解决您的问题。 它以按位方式在您的img
和mask
之间执行“与”操作。
mask
中的白色区域,保留对应的img
区域mask
中的白色区域,对应的img
区域被遮挡代码:
img = cv2.imread(r'C:\Users\524316\Desktop\Stack\eye\eye.jpg')
mask = cv2.imread(r'C:\Users\524316\Desktop\Stack\eye\mask.jpg', 0)
# invert the mask
th = cv2.threshold(mask,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)[1]
# preserve the background
res = cv2.bitwise_and(img, img, mask = th)
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.