2013-03-22 76 views
2

我有8个点在二维空间中创建八边形的轮廓。我需要找到这些点包含的区域,但我该如何使用matlab做到这一点?Matlab:查找包含点(x,y)的区域

的八个点(X,Y)包含在8×2矩阵B.

B = [ 260 455; 
    1187 467; 
    1325 605; 
    1342 1533; 
    1207 1675 
    251 1690; 
    107 1547; 
    116 593]; 

所述多边形是通过绘制从作为第1行的点的直线与行2创建的,则行2至第3行等等...

+0

首先使用roipoly创建一个蒙版,然后使用bwarea找到区域 – 2013-03-22 20:59:50

+1

@Parag - 如果数字很大,那么效率可能相当低。在某些情况下,这也会不准确,特别是当使用多区域的更好的答案是如此微不足道的时候。 – 2013-03-22 21:39:00

回答

6

您可以使用polyarea

ar = polyarea(B(:, 1), B(:, 2)); 
+0

这个问题有很多可能的解决方案,但我认为这是最有效的,因为它是内置的函数,可以完全满足OP的要求。 – Floris 2013-03-22 23:04:39

0

我会去与梯形

Area = trapz(B(:,1),B(:,2)); 
0

要计算面积和体积,可以使用convhull