gpt4 book ai didi

python - opencv inRange像素位置

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:13 25 4
gpt4 key购买 nike

我需要获取一些在 RGB 颜色值范围内的像素

我使用 inRange 函数:

 mask = cv2.inRange(image, lower, upper)

现在我得到了这个掩码,我需要对这个过滤后的像素进行一些操作——即找到两个随机像素之间的距离

我该怎么做?

如果我调用 print(image) 我得到以下数组:

[[[ 78  94 107]
[ 82 97 113]
[ 87 102 118]
...
[101 114 116]
[108 120 122]
[109 121 123]]

据我所知,这是一个数组,其中键是 x 和 y 像素位置,值是 RGB 代码。但是如果我调用 print(mask.nonzero()) 我会看到

(array([126, 126, 126, ..., 168, 168, 168], dtype=int64),...)

而且我真的不明白这个数组和文档中的内容我没有找到返回值的类型

最佳答案

由于 mask 是一个二维数组,numpy.nonzero(..)方法将返回一个二元组,第一项是第一个非零坐标的索引数组,第二个元组是第二个非零坐标的索引数组。

您可以 np.transpose(..)这是为了获得一个 n×2 矩阵,每一行都有两个不为零的像素坐标,所以:

print(<b>np.transpose(</b>mask.nonzero()<b>)</b>)

关于python - opencv inRange像素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53102287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com