Мера «Круглость» в regionprops
определяется как
Circularity = (4 Area π)/(Perimeter²)
Для круга, где Area = π r²
и Perimeter = 2 π r
, получается:
Circularity = (4 π r² π)/((2 π r)²) = (4 π² r²)/(4 π² r²) = 1
Для любой другой формы периметр будет относительно длиннее (это характеристика c круга!), Поэтому мера "Круглость" будет меньше.
Круглость Поджека - это другая мера. Он определен как
Podczeck Circularity = Area/(π/4 Height²)
В документации, которую вы связываете, он ссылается на Height
как sp
и определяет его как «диаметр Фере перпендикулярно s
» и определяет s
как самый короткий диаметр Ферета ". Таким образом, sp
является самой большой из двух сторон минимального ограничивающего прямоугольника.
Для круга минимальный ограничивающий прямоугольник имеет Height
, равный диаметру. Заменим снова:
Podczeck Circularity = (π r²)/(π/4 (2 r)²) = (π r²)/(π/4 4 r²) = 1
Для любой другой фигуры высота будет относительно больше, поэтому мера округлости Подчека будет меньше.
Обратите внимание, что макс и Мин. диаметры Ферета не обязательно перпендикулярны. Простой пример - квадрат: самый большой диаметр - это диагональ квадрата; наименьший диаметр - это высота или ширина; эти два находятся на 45 градусов друг от друга. Для измерения округлости Подчека используется размер проекта, перпендикулярный наименьшей проекции, который для квадрата равен наименьшей проекции и меньше, чем наибольшая проекция. Наименьшая проекция и ее перпендикулярная проекция образуют минимальный ограничивающий прямоугольник (как правило, хотя, по-видимому, это не обязательно так?). Однако regionprops
имеет «BoundingBox», который выровнен по оси и поэтому не подходит. Я не знаю, как получить требуемое значение из regionprops
.
Подход, который вы должны будете использовать, - использовать вывод PixelList regionprops
вместе с MinFeretAngle. «PixelList» - это список координат пикселей, которые принадлежат объекту. Вы должны повернуть эти координаты в соответствии с «MinFeretAngle», так чтобы ограничивающий прямоугольник с выравниванием по оси теперь соответствовал минимальному ограничивающему прямоугольнику. Затем вы можете определить размер поля, взяв минимальное и максимальное значения повернутых координат.