图像到点的坐标列表,满足某些标准

时间:2018-05-05 09:53:26

标签: python numpy opencv image-processing

我们说我有一个numpy数组形式的OpenCV图像。我想收集大于零蓝色分量的点的所有(x,y)点坐标。天真的方式是这样的:

n_rows, n_cols, _ = image.shape
points = []
for row in range(n_rows):
    for col in range(n_cols):
        if image[row, col, 0] > 0:
            points.append((row, col))

使用numpy或OpenCV功能是否有更智能,更有效的方法来做同样的事情?

1 个答案:

答案 0 :(得分:3)

这会有所帮助:

np.argwhere(image[:,:,0] > 0)

对于具有三个颜色通道的给定image(在此BGR中),0中的image[:,:,0]表示第一个通道(蓝色)

语句本身返回一个坐标数组,其中蓝色通道的像素值大于0