Измерение «Площадь» и «Периметр» - Matlab - PullRequest
1 голос
/ 26 апреля 2020

Есть ли способ преобразовать параметры regionprops 'Area' и 'Perimeter' в реальное измерение? У меня есть x1, y1 и x2, y2 масштабной линейки, поэтому я использовал приведенный ниже код, чтобы получить размерный коэффициент, надеясь, что простое умножение его на результат regionprop 'Area' и 'Perimeter', но это не работает? Является ли это возможным? Есть идеи?

Код:

distS = sqrt((x1-x2)^2+(y1-y2)^2);
scaleValue = 10; %in cm
sizeFactor = scaleValue/distS;

1 Ответ

1 голос
/ 26 апреля 2020

Да, это работает.

Периметр - это длина (см), поэтому умножение периметра в пикселях на sizeFactor дает периметр в см.

Площадь - квадратная длина (см² ) поэтому вам нужно умножить дважды на sizeFactor, чтобы получить площадь в см² (то есть area*sizeFactor*sizeFactor).

Эти преобразования сохраняются для любых измерений длины и площади. Длина, измеренная в пикселях, умножается на коэффициент преобразования, а площадь, измеренная в квадратных пикселях, умножается на квадрат коэффициента преобразования. Вы можете сказать, что это правильно, обращая внимание на единицы:

area_px пикселей² * factor см² / пикселей² = area_cm см²

...