2015-11-07 58 views
-1

隐藏点我想删除隐藏点从一个观点看(V)卸下从云

V=[ xv yv xv omega phi kappa] 

云具有法线:

cloud=[ x y z color nx ny nz] 
  • 隐蔽点=查看器是在点V并看着对象点'B'。从这个可视角度看,'A'点正好在'B'后面。因此,它应该被删除。 (见图2) 但是,如果观看者在点V1并看着对象点'B'。从这个观察角度看,'A'点不在'B'后面。因此,它不应该被删除。* (见图1) 我知道this后,我发现它很有趣,试过但没有示例数据,我不知道如何使用它。

我也知道这篇文章How to remove hidden points from point cloud using normal vectors (in matlab)?但我不明白答案,这很难弄清楚。

如何在不使用查看器和旋转位置的情况下删除双点。请在这方面帮助我。任何链接都会很好。

figure 1

Figure 2

+0

什么是没有查看器的隐藏点?就我的理解而言,隐藏点是远离观察者的一点。 – Daniel

+0

“B点隐藏在点A之后”等同于“观看者的位置位于具有原点A和方向(A-B)的射线”。您要求解决方案时不使用查看器的位置。 – Daniel

+0

我投票结束这个问题,没有一个明确的强度值定义和隐藏点允许许多可能的答案。我建议抓笔和纸,画一个5x5点的网格,随机去除两个外部点和两个内部点,假设强度为.5并尝试解决它。 – Daniel

回答

2

很抱歉,但没有关于你的命名约定或特定问题的详细信息,我只能给一个笼统的回答。我知道你在某个角度看到了一个云点,并且你正在试图确定一组你不能画的点,或者是因为他们落后于离摄影机较近的点,或者是因为他们在该角度下处于对象的“隐藏部分”中。

最后一个区别是关键,有您需要解决两个独立的问题:

  1. 给定点的云,你可能要计算你的对象的凸包,或者用其他的方法确定它是外表面。这个想法是,为了表示的目的,如果你的物体不被切割或打开,只有它是表面的问题。寻找适合点云的表面的一般问题很难,因此您需要添加更多的特定于您的应用程序的约束条件。给定一个物体的外表面(通常是一个三角网格)和一个视角,你可能想要决定哪些点的子集构成了物体的“可见部分”。这是你的链接提到的背面剔除问题。这个想法是,给定一个与您的摄像机角度(视图平面)正交的平面并且要计算一定的深度,您需要查找该平面上方或下方的一组顶点。通过查看将该参考点链接到网格的任何顶点与矢量法线的矢量的点积,可以非常简单地完成此操作。如果为正值,则顶点“隐藏”,如果为负值,则为“可见”。

希望这会有所帮助。