이진 이미지가 있고 OpenCV에서 다음을 수행한다고 가정합니다. 점이 주어지면 점이 속한 연결된 구성 요소의 면적과 둘레를 측정합니다.OpenCV 연결된 구성 요소의 경계 및 점
def areaAndPerimeter(point):
...do some stuff...
return area, perimeter
각 연결된 구성 요소의 둘레와 영역을 찾기 위해 cv2.findContours()
을 사용할 수는 있지만 입력 정보와 쌍을 이루는 방법을 모르겠습니다. 어떤 주변 및 영역이 연결된 구성 요소에 해당하는지 point
당신은'connectedComponentsWithStats()'를하고 각 블롭의 모든 포인트를 같은 색으로 라벨링한다고 생각합니다. 따라서 해당 지점에 해당하는 색상 (예 : 라벨)을 찾아 해당 색상이 속한 얼룩을 찾을 수 있습니다. 나는 절망적으로 잘못 될 수 있습니다! 그것은 Matlab에서'bwlabel()'이라고 불리우며, 저는 믿습니다. –
네, 이전에''connectedComponents()''를 사용하고 각 구성 요소를 1 씩 추출하고 각각에 대해''findContours()''를 실행하는 솔루션을 개발하기 시작했습니다. 그러나 그런 낭비처럼 보입니다 한 번 전체 이미지에서''findContours()''를 실행하고 연결된 구성 요소를 모두 건너 뛸 수있을 때. – mv3