繁体   English   中英

在Matlab中计算离散点的面积

[英]Computing the area of discrete points in Matlab

我有一组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,并且所有强度值都更改为仅一个值,此外,还删除了窗口的内部。 内部部分的面积值得计算。

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

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

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

例如:

Area = polyarea(pointsX, pointsY) 

考虑到点的顺序很重要,并且它们必须形成有效的多边形(各部分不得交叉)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM