Как рассчитать количество отверстий изображения (двоичное) с помощью функции 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-объектов, такие как площадь, центроид и т. Д., Вы можете использовать моменты изображения (также посмотрите здесь).

Попробуйте взглянуть на эти учебные пособия по работе с "поиском дыр", здесь и здесь.

Другие вопросы по тегам