<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Jul 17, 2015 at 9:56 AM, Clarke, Trevor <span dir="ltr"><<a href="mailto:tclarke@ball.com" target="_blank">tclarke@ball.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Trying to convert some las to pcd for use with PCL. "pdal translate foo.las foo.pcd" yields:<br>
"PDAL: Unable to fetch data and convert as requested: Red:uint16_t(27136) -> unsigned char"<br>
<br>
I'm guessing there's some 16-bit data points and PCL can only work on 8-bit? Can I create a filter to compress this down to 8-bit?<br></blockquote><div><br></div><div>Yes.  You just need to make sure that your values for RGB will fit into an unsigned char (since that's what's supported on PCL).  Let's say you want to scale data from uint16_t to uint8_t (unsigned char).  A very simple filter would essentially look like:</div><div><br></div><div>// Not compiled or tested...</div><div>void filter(PointView& view)</div><div>{</div><div>    for (PointId idx = 0; idx < view.size(); ++idx)</div><div>    {</div><div>        uint16_t r = view.getFieldAs<uint16_t>(Dimension::Id::Red, idx);</div><div>        view.setField(Dimension::Id::Red, idx, (r >> 8));</div><div>        // Repeat for Green and Blue.</div><div>    }</div><div>}</div><div><br></div><div>You can make a pipeline with your filter that has a LAS reader, your filter and a PCD writer.  Of course, you can do fancier things than this example.</div><div><br></div><div>As an alternative, you can write python and use the programmable filter (<a href="http://www.pdal.io/stages/filters.programmable.html">http://www.pdal.io/stages/filters.programmable.html</a>).</div><div><br></div><div>Write back if you have more questions.</div><div><br></div></div>-- <br><div class="gmail_signature">Andrew Bell<br><a href="mailto:andrew.bell.ia@gmail.com" target="_blank">andrew.bell.ia@gmail.com</a></div>
</div></div>