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