2015-05-26 4 views
0

У меня есть несколько бинарных изображений, которые хотят классифицировать их по форме в MATLAB. Если они имеют круговую или эллиптическую форму, они относятся к первому классу, если они имеют эллиптическую форму с вмятиной на их границе, они относятся к классу два. Я не знаю, как использовать эту функцию. Может ли кто-нибудь помочь мне с этим?Измерение округлости или эллиптической точности

ответ

3

Вы можете использовать eccentricity в regionprops. Из MATLAB документации eccentricity:

Эксцентриситета является отношением расстояния между фокусами эллипса и его длиной главной оси. Значение между 0 и 1. (0 и 1 вырожденные случаи. Эллипс, эксцентриситет-на самом деле является круг, в то время как эллипс, чей эксцентриситет 1 представляет собой отрезок.)

Так как значение от eccentricity увеличивается, эллипс начинает становиться flatter. Следовательно, при его максимальном значении = 1 это отрезок.

Чтобы проверить, есть ли вмятина в эллипсе, вы можете использовать проверку выпуклости. Всякий раз, когда в эллипсе есть вмятина, он будет не выпуклым. Другими словами, если вы попытаетесь установить выпуклый многоугольник, он не сможет достаточно приблизиться к форме. Вы можете использовать convexArea property, чтобы проверить то же. Из MATLAB документации convexArea:

Возвращает матрицу р-на-2, который определяет наименьший выпуклый многоугольник, который может содержать область. Каждая строка матрицы содержит x- и y-координаты одной вершины многоугольника. Поддерживается только для двухмерных матриц меток.

Таким образом, вы используете bwlabel для создания матрицы меток на 2-D от вашего бинарного изображения, а затем проверить разницу между областью вашего бинарного изображения и областью подогнанного выпуклого многоугольника. Область измерения может быть такой же простой, как подсчет пикселей. Вы уже знаете, что число пикселей вашего установленного выпуклого полигона = p. Просто возьмите абсолютную разницу между p и количеством пикселей в исходном двоичном изображении. Вы должны иметь возможность легко установить пороговое значение для классификации в один из двух классов.

Я думаю, что вы можете написать код для этого. Надеюсь это поможет.

+0

Благодарим за обобщение документации. +1. – rayryeng

Смежные вопросы