所以我有一个导入到python的图像。 imread命令基本上给我一个数组X,Y,Z,其中X和Y是像素的坐标,Z(有四个维度)给出了给定点(X,Y)的RGB值。
$ git checkout (1)~1 # Go back to the original state
$ git cherry-pick (2) # (2') First apply bugfix, expecting no conflict
$ git cherry-pick (1) && git cherry-pick (3)
$ git reset --soft HEAD^ && git commit --amend -m "A new feature X" # (5)
$
$ # origin -- (2') -- (5)
我的目标是分析RGB配置为[136,136,0,255]的数组中的确切点。这些点是黄绿色。我想将X和Y值添加到列表或数组中,以便我可以绘制它们。
为了实现这一点,我迭代数组的每个点X和Y(行和列),并分析Z值。我需要的是for循环中单元格的坐标(X,Y)。
基本上,如果图像的点(X,Y)中的颜色为黄色,请将该点(X,Y)添加到列表中。
令人惊讶的是,我认为在网上找不到任何东西,这是一个相对简单的事情。我意识到我可以使用以下内容进行交流: 因为我在范围len(X轴)这样的东西,但我想知道这是否可能。
答案 0 :(得分:1)
不完全确定这是你正在寻找的,但我认为你想从循环中获取索引。这样做的主要方法是
for i in range(0,255):
然后索引到数组enumerate
进行迭代,它返回索引以及集合中的值index
方法我认为最简单的选择是index
方法。
for row in CrpImg:
for cell in row:
print(np.nonzero)
if (cell == [136,136,0,255]).all:
print(CrpImg.index(row), row.index(cell))
请注意,这将为您提供作物内的索引而不是完整图像。您可以调整(通过添加14和12),也可以迭代整个图像。
答案 1 :(得分:0)
如果您使用标准库中的enumerate,则可以访问包含计数和值的元组。默认情况下,计数从0开始
for row in CrpImg
变为
for num, row in enumerate(CrpImg):
print(num)
答案 2 :(得分:0)
尝试使用numpy.where:
indices = numpy.where(my_array == [136,136,0,255])