2016-08-10 1114 views
0

我有一组2D离散点,需要计算内部面积,或简单的长度和高度,这并不重要。但这个问题的重点在于;不一定我们有形成内表面的锐利边缘。我尝试了命令boundaryinpolygon,但似乎不是这个问题的正确答案。如何处理我们没有直线边缘的边缘,如弧形或半圆形。在Matlab中计算离散点的面积

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中,并且所有强度值仅改变为一个值,此外,窗口的内部部分被移除。内部部分的面积是需要计算的。

这对我来说是一个挑战!任何人都可以提醒一下吗?

+1

的一点是,根据定义,一些与零区。除非你的意思是别的,而你没有表现出来。这是图像处理吗?我们可以看到图像吗?你有什么尝试? –

+0

你能否建议我如何上传屏幕截图或ascii文件?实际上它不是一个图像结构,即不是像素格式。它只是离散点,意味着x,y坐标,但显然没有连接。 – Sophia

+0

在问题编辑器中,您有一个上传图片的按钮。或者你可以在外部网站上传图片并提供一个链接(还有一个链接按钮) –

回答

0

也许你可以为了获得一个独特的“对象”使用imcloseimdilateimerode功能,那么你可以从0或255汇总所有的值diferent计算领域,根据您的实现。我假设图像是黑白的,否则先转换它。 Matlab的文档:

+0

亲爱的RCaetano,我提供了一个链接到数据,也解释了这个问题。 – Sophia

+0

这不是一个图像问题。在ascii文件中,有xyz坐标加上强度值。强度是与某些参数(如材料)有关的点的一个属性。 – Sophia

0

如果你的点是多边形的顶点坐标,那么你可以使用polyarea返回的区域那个多边形。

例:

Area = polyarea(pointsX, pointsY) 

您考虑这个问题的点的顺序,他们必须形成有效的多边形(段不得跨越)

+0

尊敬的Sembei,我提供了一个链接到数据,也解释了更多的问题。 – Sophia

+0

正如在ascii文件中可以看到的,在构建ascii文件记录的点之间没有特定的顺序。他们已被随机记录。 – Sophia

+0

您可以在Z坐标(深度)中放置阈值。所以你会以一个二进制图像结束一定深度的对象。一旦你有二进制图像,你可能需要一些形态来清理它,然后你可以使用'bwarea'。看一看http://ch.mathworks.com/help/images/ref/bwarea.html –