有一个具有三个 RGB 通道的光栅。有必要只留下那些加起来为白色或接近白色的值。用零替换其他所有内容,即 让它变黑。
我复制到numpy.array和单独通过的每个频道我numpy.where都可以过滤。
但是如何通过 NumPy 做出这样的条件呢?
for i in range(0, len(red_scanline) - 1):
if red_scanline[i] <= 200 or green_scanline[i] <= 200 or blue_scanline[i] <= 200:
red_scanline[i] = 0
green_scanline[i] = 0
blue_scanline[i] = 0
使用一个多维数组更容易,但是如果要过滤三个相同形状的单独数组(未测试):
需要括号。请参阅Numpy 数组,如何选择满足多个条件的索引?
相关问题:将数组中的低值归零的最快方法?
您可以使用OpenCV(开源计算机视觉库)模块来完成类似的任务。它专为与机器视觉和图像处理相关的任务而设计。
原始图像的示例:
编码:
结果: