假设我有一个二进制图像,我想在OpenCV中执行以下操作:给定一个点,测量该点所属的连通组件的面积和周长。
def areaAndPerimeter(point):
...do some stuff...
return area, perimeter
我知道我可以使用cv2.findContours()
来查找每个连接组件的周长和区域,但我不知道如何将该信息与输入点配对。哪个周长和区域对应于point
答案 0 :(得分:0)
对于这个功能,我只是从这个点开始增长一个区域。以下是伪代码:
- Define a point queue Q
- Define a foreground point vector F
- Define a boundary point vector B
- Put starting point in Q
- While Q is not empty
- p = Q.top
- if p is foreground
- F.push(p)
- Q.push(neighbors of p)
- else
- B.push(p)
- Return size(F), size(B)
最后,F
包含前景像素,B
包含边界像素(黑色在右边像素之外)。因此,size(F)
给出了区域,size(B)
给出了区域。