如何在没有像素操作的情况下使用opencv python仅更改白色的黑色

时间:2016-11-16 14:07:51

标签: python opencv

This is the sample Image

我想将图像中的黑色更改为白色。 我尝试使用阈值和按位操作,但这些操作会扭曲图像中存在的其他颜色。 我不想使用像素操作,因为它们很昂贵。

2 个答案:

答案 0 :(得分:0)

使用cv2.THRESH_INV参数对源图像应用阈值操作,以确保只有黑色像素变为白色而其他像素变为黑色。

使用以下方法将二进制掩码转换为3通道图像:

src1_mask=cv2.cvtColor(src1_mask,cv2.COLOR_GRAY2BGR)#change mask to a 3 channel image

使用cv2.addWeighted方法添加蒙版和原始图像。掩模的黑色部分将被原始图像替换,白色部分将保持白色,因为在addWeighted操作中黑色像素将大约为0

答案 1 :(得分:0)

将源图像加载为名为' img'然后这样做:

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
mask = cv2.compare(gray,5,cv2.CMP_LT)
img[mask > 0] = 255