如何将二进制中的白色像素重叠到原始图像上?

How to overlap the white pixels from binary onto original image?

我有一张航拍图:

我能够得到河流部分河床的二值图像:

应用距离变换和一些分割技术后,我能够得到平均河线的二值图像:

我的问题是:如何叠加河流线上的白色像素,使它们位于原始图像的“顶部”?

这是一个例子:

这是解决您问题的一种非常简单的方法。但它有效。

import cv2

original = cv2.imread('original.png')  # Orignal image
mask = cv2.imread('line.png')          # binary mask image
result = original.copy()

for i in range(original.shape[0]):
    for j in range(original.shape[1]):
        result[i, j] = [255, 255, 255] if mask[i, j][0] == 255 else result[i, j]


cv2.imwrite('result.png', result)   # saves modified image to result.png

结果