Python 将图像转换为满足特定条件的点坐标列表

Python 将图像转换为满足特定条件的点坐标列表,python,numpy,opencv,image-processing,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图像。我想收集蓝色分量大于零的点的所有(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功能实现同样的功能?

这将有助于:

np.argwhere(图像[:,:,0]>0)

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


语句本身返回一个坐标数组,其中蓝色通道的像素值大于0。所以,它是
argwhere
。直到
image[:,:,0]>0
我自己才得到它,现在最后一个谜团终于解开了。很高兴我能帮助@Headcrab,我多次遇到同样的问题!!