如何将二进制中的白色像素重叠到原始图像上?
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
结果
我有一张航拍图:
我能够得到河流部分河床的二值图像:
应用距离变换和一些分割技术后,我能够得到平均河线的二值图像:
我的问题是:如何叠加河流线上的白色像素,使它们位于原始图像的“顶部”?
这是一个例子:
这是解决您问题的一种非常简单的方法。但它有效。
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