-1

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

 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 查看器显示点,但颜色不是我期望的黄色?

观众有什么问题吗?

4

2 回答 2

1

我不使用 C#,但我相信从 int 到 float 的转换是保留值而不是位结构。即,您不是在重新解释演员阵容,而是在实际转换数字。

搜索这个网站,我相信你需要的是 BitConverter:

两个 C# 问题;如何重新解释将浮点数转换为 int?C# 是否具有非静态转换运算符或用户定义的赋值运算符,以便在“this”上进行转换?

于 2013-08-21T13:27:23.973 回答
0

问题解决了。只需使用 PCD 颜色结构 withInteger而不是Float(需要修改 PCD 文件结构以使用颜色 with Integer)。这样我就不需要重新解释从intto 转换float

于 2013-08-22T08:32:26.983 回答