Python 将图像转换为满足特定条件的点坐标列表
假设我有一个numpy数组形式的OpenCV图像。我想收集蓝色分量大于零的点的所有(x,y)点坐标。天真的方式是这样的: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)) 是否有一种更智能、更高效
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,我多次遇到同样的问题!!