我如何在opencv中获取所有对象的所有像素?

时间:2019-06-29 11:44:09

标签: python opencv

我的图像带有单独的对象,只有一种颜色。

示例图片:

example

我想从每个对象中获取所有像素。我使用Python和CV2。但是我不知道该怎么做。

我想得到的例子:

  • object1:[(x1,y1),(x2,y2)...(xn1,yn1)]其中n1-计算object1中的所有像素
  • object2:[(x1,y1),(x2,y2)...(xn2,yn2)]其中n2-计算object2中的所有像素
  • ...
  • objectm:[(x1,y1),(x2,y2)...(xnm,ynm)]其中nm-计算objectm中的所有像素

UPD :这可以通过cv2.connectedComponents()完成。参见此connected component labeling in python。谢谢beaker

1 个答案:

答案 0 :(得分:0)

考虑到img已在“ img”中打开 您可以使用immg [i,j]返回蓝色,红色,绿色的值,例如

>>img[12,12]
[143,144,255] // this is what is returned [blue green red]

因此您可以使用

之类的东西
rows = img.shape[0]
cols = img.shape[1]
for (i in range(0,rows)):
    for (j in range(0,cols)):
        bgr=img[i,j]
    #now use if condition and match brg values with color you wnana detect then append the pair i,j in the a list if the condition matcches