【发布时间】:2021-06-04 02:57:54
【问题描述】:
只是一个简单的问题: 我正在加载黑白图像,然后用其他颜色替换黑色和/或白色像素。问题是,当我将编辑后的图像可视化时,白色部分周围有一些黑色像素,例如噪点。
输入图像:
这是我如何遍历像素:
img1_black[np.where((img1_black == [0, 0, 0]).all(axis=2))] = [0, 255, 0]
cv2.imshow("Result4", img1_black)
第二种迭代方法:
img1_black_pixels_mask = np.all(mask_1 == [0, 0, 0], axis=-1)
img1_non_black_pixels_mask = np.any(mask_1 != [0, 0, 0], axis=-1)
img1_black[img1_black_pixels_mask] = [0, 0, 255]
img1_black[img1_non_black_pixels_mask] = [0, 255, 0]
plt.imshow(img1_black)
plt.show()
第一个输出图像
第二个输出图像
【问题讨论】:
-
您正在处理灰度图像(值在 [0-255] 范围内),但只屏蔽了完全黑色的像素(范围 [0])。白色斑点周围的像素几乎完全是黑色像素(范围 [1-20])。尝试先对图像进行阈值处理,然后应用其余代码。见this
-
是的,就是这样。感谢您的回答!
标签: python numpy opencv matplotlib computer-vision