meshlabserver:顶点属性转移

时间:2018-05-01 06:08:41

标签: mesh 3d-reconstruction meshlab

我想从彩色pointcloud自动重建。我有一个meshlab脚本,通过一些阈值清除噪声,它还清除散乱的噪音。然后进行泊松重建。现在我想将颜色从pointcloud传递到新生成的泊松网格。使用meshlab GUI,顶点属性传输工作正常,但它不能与meshlabserver脚本一起使用。

这是我的meshlabscript:

<!DOCTYPE FilterScript>
<FilterScript>
 <filter name="Conditional Vertex Selection">
  <Param type="RichString" value="x &lt; -1.16" name="condSelect"/>
  <Param type="RichBool" value="true" name="strictSelect"/>
 </filter>
 <filter name="Delete Selected Vertices"/>
 <filter name="Conditional Vertex Selection">
  <Param type="RichString" value="y &lt; -0.5" name="condSelect"/>
  <Param type="RichBool" value="true" name="strictSelect"/>
 </filter>
 <filter name="Delete Selected Vertices"/>
 <filter name="Conditional Vertex Selection">
  <Param type="RichString" value="z > 2.3" name="condSelect"/>
  <Param type="RichBool" value="true" name="strictSelect"/>
     </filter>
 <filter name="Delete Selected Vertices"/>
 <filter name="Conditional Vertex Selection">
  <Param type="RichString" value="z &lt; 1" name="condSelect"/>
  <Param type="RichBool" value="true" name="strictSelect"/>
 </filter>
 <filter name="Delete Selected Vertices"/>
 <filter name="Estimate radius from density">
  <Param type="RichInt" value="40" name="NbNeighbors"/>
 </filter>
 <filter name="Conditional Vertex Selection">
  <Param type="RichString" value="rad > 0.012" name="condSelect"/>
  <Param type="RichBool" value="true" name="strictSelect"/>
 </filter>
 <filter name="Delete Selected Vertices"/>
 <filter name="Compute normals for point sets">
  <Param type="RichInt" value="10" name="K"/>
  <Param type="RichBool" value="false" name="flipFlag"/>
  <Param x="0" y="0" z="0" type="RichPoint3f" name="viewPos"/>
 </filter>
 <filter name="Surface Reconstruction: Poisson">
  <Param type="RichInt" value="8" name="OctDepth"/>
  <Param type="RichInt" value="8" name="SolverDivide"/>
  <Param type="RichFloat" value="1" name="SamplesPerNode"/>
  <Param type="RichFloat" value="1" name="Offset"/>
 </filter>
 <filter name="Vertex Attribute Transfer">
  <Param type="RichMesh" value="1" name="SourceMesh"/>
  <Param type="RichMesh" value="0" name="TargetMesh"/>
  <Param type="RichBool" value="false" name="GeomTransfer"/>
  <Param type="RichBool" value="false" name="NormalTransfer"/>
  <Param type="RichBool" value="true" name="ColorTransfer"/>
  <Param type="RichBool" value="false" name="QualityTransfer"/>
  <Param type="RichBool" value="false" name="SelectionTransfer"/>
  <Param type="RichBool" value="false" name="QualityDistance"/>
  <Param type="RichAbsPerc" value="0.042202" min="0" name="UpperBound" max="2.11009"/>
 </filter>
</FilterScript>

如何让它运作?

1 个答案:

答案 0 :(得分:0)

我发现了这个错误。当我遵循meshlab中的清洁和重建过程时,它起作用了。但我保存脚本并使用命令行运行,它没有工作。问题是顶点属性转移中网格的排序错误。我在脚本的顶点属性传输部分中切换了源和目标网格的值,它起作用了。