计算Matlab中离散点的面积

时间:2016-08-10 13:50:46

标签: matlab 2d area points

我在2D中有一组离散点,需要计算内部区域,或者只是长度和高度,显然无关紧要。但这个问题的重点是;不一定我们有锋利的边缘塑造内表面。我尝试了命令boundaryinpolygon,但似乎不适合这个问题。我们没有直边的边缘怎么样,如弧形或半圆形。

https://drive.google.com/file/d/0B-DuVkE6qbU3ZnJsbWdQNjVmVkk/view?usp=sharing

链接中提供的文件:

  • 文件1由XYZ坐标加强度(来自激光扫描数据)值
  • 组成
  • 文件2由XYZ坐标加强度组成,而所有Z和强度值都通过文件固定。
  • 图1-1,1-2,1-3,1-4表示具有相关强度值的3D数据。不同的强度值显示不同的材料。白色箭头表示段的不同部分的深度。
  • 图2-1,2-2表示只有一个强度值的2D数据。实际上,在该步骤中,3D数据被投影到2D并且所有强度值仅改变为一个值,此外,窗口的内部部分被移除。内部部分的区域是有意义的。

对我来说这是一个挑战!有人可以提出建议吗?

2 个答案:

答案 0 :(得分:0)

也许您可以使用imcloseimdilateimerode函数来获取唯一的“对象”,然后您可以通过将所有与0不同的值相加来计算区域或者255,根据你的实现。我假设图像是黑白的,否则首先转换它。 Matlab文档:

答案 1 :(得分:0)

如果您的点是多边形的顶点坐标,则可以使用polyarea返回该多边形的区域。

例如:

Area = polyarea(pointsX, pointsY) 

考虑到点的顺序很重要,它们必须形成一个有效的多边形(段不能交叉)