PCD查看器的颜色

时间:2013-08-21 00:08:44

标签: c# rgb point-cloud-library

我希望以.pcd文件格式(Documentation of .pcd)显示黄色的3D点。使用下面的C#代码从黄色中检索PCD颜色格式(R:255,G:255,B:0)。

 byte red = 255;
 byte green = 255;
 byte blue = 0;
 int rgb = ((int)red) << 16 | ((int)green) << 8 | ((int)blue);
 float rgb2 = (float)rgb;

然后返回的值为rgb2 = 1.677696E+7

将点数保存到PCD文件,如(x, y, z, 1.677696E+7)

我使用PCD查看器显示点,但颜色不是我所期望的黄色?

观众有什么不对吗?

2 个答案:

答案 0 :(得分:1)

我不使用C#,但我相信从int到float的转换是保留值而不是位结构。即你没有进行重新解释,但实际上是在转换数字。

搜索本网站,我相信您需要的是BitConverter:

Two C# questions; how can I reinterpret cast a float to an int? Does C# have a non-static conversion operator or user-defined assignment operator so that the conversion takes place on 'this'?

答案 1 :(得分:0)

问题解决了。只需使用Integer代替Float的PCD颜色结构(需要修改PCD文件结构以使用Integer颜色)。这样我就不需要重新解释从int转换为float