Предположим, у меня есть бинарное изображение, и я хочу сделать в OpenCV следующее: учитывая точку, измерьте площадь и периметр связанного компонента, которому принадлежит эта точка.
def areaAndPerimeter(point):
...do some stuff...
return area, perimeter
Я знаю, что могу использовать cv2.findContours()
, чтобы найти периметр и площадь каждого связанного компонента, но я не знаю, как связать эту информацию с точкой ввода. Какой периметр и площадь соответствуют компоненту связности point
connectedComponentsWithStats()
, и он помечает все точки в каждой капле одним цветом. Таким образом, вы найдете цвет (т.е. метку), соответствующий вашей точке, чтобы определить, к какой капле она принадлежит. Я могу безнадежно ошибаться! Насколько я знаю, в Matlab он называетсяbwlabel()
. - person Mark Setchell   schedule 24.01.2017connectedComponents()
, а затем извлекаю каждый компонент 1 на 1 и запускаюfindContours()
отдельно для каждого, но это кажется такой тратой времени, когда я могу запуститьfindContours()
один раз для всего изображения и пропустить подключенное компоненты все вместе. - person mv3   schedule 24.01.2017