[Liblas-devel] libLAS 1.6.1 - Can't read color in Point Format 2
Ryan W. Frenz
ryan at allpointsystems.com
Tue Nov 8 16:15:15 EST 2011
It seems I am unable to read RGB color from points in point format 2.
Using the code snippets below, I write 10 points to a LAS file, with RGB
color, and then read it back. I can read back the coordinates properly
but not the color (I get RGB=0,0,0 for all points). Anything jump out
that I'm doing wrong? Could someone point me to some sample data in
point format 2 that I could use for testing?
Notes:
- This same code works properly using Point Format 0 and
Set/GetIntensity instead of Color.
- I am performing this test using libLAS 1.6.1 compiled for Windows
(same results in 32 and 64 bit).
Thanks in advance,
Ryan
void write(const std::string& filename) {
std::ofstream out(filename, std::ios::binary);
liblas::Header h;
h.SetDataFormatId(liblas::ePointFormat2);
h.SetPointRecordsCount(10);
h.SetPointRecordsByReturnCount(1, 10);
h.SetScale(0.001, 0.001, 0.001);
h.SetOffset(0,0,0);
liblas::Writer w(out, h);
for (double i = 0; i <= 1.0; i+=0.1) {
liblas::Point p;
p.SetX(i); p.SetY(i); p.SetZ(i);
liblas::Color c;
c.SetRed(static_cast<liblas::Color::value_type>(std::numeric_limits<liblas::Color::value_type>::max()
* i));
c.SetGreen(static_cast<liblas::Color::value_type>(std::numeric_limits<liblas::Color::value_type>::max()
* i));
c.SetBlue(static_cast<liblas::Color::value_type>(std::numeric_limits<liblas::Color::value_type>::max()
* i));
p.SetColor(c);
w.WritePoint(p);
}
out.close();
}
void read(const std::string& filename) {
std::ifstream in(filename, std::ios::binary);
liblas::Reader reader(in);
int ct = 0;
while ((ct < 10) && reader.ReadNextPoint()) {
const liblas::Point& p = reader.GetPoint();
std::cerr << p.GetX() << ", " << p.GetY() << ", " << p.GetZ() <<
", " << p.GetColor().GetRed() << ", " << p.GetColor().GetGreen() << ", "
<< p.GetColor().GetBlue() << "\n";
++ct;
}
in.close();
}
--
Ryan W. Frenz
Head of Software Development
Allpoint Systems
ryan at allpointsystems.com
(412) 444-5149
More information about the Liblas-devel
mailing list