2015-08-03 6 views
1

Если у меня есть произвольная форма (приложенная по-настоящему простая макета), как бы я оценил площадь закрытой поверхности в Matlab. Чтобы получить некоторые случайные точки вдоль кривой, я использовал команду ginput, чтобы получить приблизительную оценку кривой с неравным расстоянием между точками. Я хочу получить оценку области, но я считаю, что команда trapz переоценивает область из-за перекрытия (пожалуйста, поправьте меня, если я ошибаюсь здесь). Есть ли более точный способ получить эту область?Расчет площади Matlab

Спасибо! enter image description here

enter image description here

+1

Как создать форму? – NKN

+0

Какие у вас данные? 'trapz' также может использоваться с хорошей точностью. – NKN

+0

@NKN Я просто создал случайный рисунок в качестве примера. Разве это не задержит заоблачно? – Cyrus

ответ

0

Ну, вы на самом деле не дают достаточно информации, чтобы решить эту проблему полностью, но вот один подход можно предпринять, чтобы автоматически найти границу для того, чтобы рассчитать площадь:

% Get image and convert to logical mask 
img = ~im2bw(imread('polyarea.jpg')); 

% Fill the hole 
img = imfill(img,'holes'); 

% Get boundary 
b = bwboundaries(img); 

% Approximate area of boundary 
area = polyarea(b{1}(:,1), b{1}(:,2)); 

% Print area 
disp(['Area: ' num2str(area)]); 

imshow(img); 
hold on; 
plot(b{1}(:,2),b{1}(:,1),'go'); 

Идея заключается в том, что у вас есть вход, вы формируете логическую маску, получаете границу маски, а затем можете приблизить область, заключенную границей, с помощью polyarea.

Выход:

enter image description here

Area: 228003 

Кроме того, вы можете также использовать regionprops(img,'Area'), который выводит:

ans = 

    Area: 229154 
+0

Спасибо за внимание и время. Будет ли такой же процесс применяться к открытой кривой? Например, если у моего тестового изображения не было «базы» (только кривая), я мог бы применить опцию imfill? Не могли бы вы сказать, какой из этих методов обеспечит более точное решение? – Cyrus

+0

@ Cyrus вы можете разместить дополнительное изображение в вопросе? – Justin

+0

Я просто имел в виду, если база первого изображения недоступна. Я добавил 2-е изображение с удаленной базой. – Cyrus