Как рассчитать количество отверстий изображения (двоичное) с помощью функции opencv
Я хочу рассчитать число Эйлера, поэтому мне нужно количество подключенных компонентов и количество отверстий в изображении. Я нашел, как найти номер подключенного компонента. Используя этот код;
vector<vector<Point>>contours;
vector<Vec4i>hierarchy;
findContours(mat,contours,hierarchy,CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE );
objects_num=contours.size();
Но я не уверен в правильности кода для расчета подключенных компонентов. Знаете ли вы, этот код правильный?
Во-вторых, ** но я не знаю, как рассчитать количество отверстий? В документе opencv сказано, что все контуры организованы в двухуровневую иерархию. Знаете ли вы, как получить количество отверстий?
2 ответа
Я пытаюсь извлечь особенности из этого изображения. Например, мне нужен номер Эйлера, атрибуты fillArea. По этой причине; Я пытаюсь выяснить количество отверстий в картине меланомы и количество подключенных компонентов. Знаете ли вы какую-либо функцию, чтобы найти эти атрибуты.
PS: я работаю на платформе Android, используя OpenCV для Android.
Итак, я могу посоветовать вам начать изучать, как OpenCV обрабатывает большие двоичные объекты (и контуры, которые описывают большие двоичные объекты).
Если вас интересуют свойства BLOB-объектов, такие как площадь, центроид и т. Д., Вы можете использовать моменты изображения (также посмотрите здесь).
Попробуйте взглянуть на эти учебные пособия по работе с "поиском дыр", здесь и здесь.