meshlabserver: передача атрибута вершины - PullRequest
0 голосов
/ 01 мая 2018

Я хочу автоматизировать реконструкцию из цветного pointcloud. У меня есть скрипт meshlab, который очищает шум с помощью порога, а также рассеивает шум. Тогда это делает пуассоновскую реконструкцию. Теперь я хочу перенести цвет из pointcloud во вновь созданную пуассоновую сетку. В графическом интерфейсе meshlab передача атрибутов вершин работает нормально, но не работает со скриптом meshlabserver.

Вот мой меш-скрипт:

<!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 голосов
/ 01 мая 2018

Я нашел ошибку. Когда я следил за процессом очистки и реконструкции в meshlab, он работал. Но я сохранил скрипт и запустил его с помощью командной строки, он не работал. Проблема была в неправильном упорядочении ячеек при передаче атрибутов вершин. Я переключил значение исходного и целевого меша в части передачи атрибута вершины, и это сработало.

...