打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PCL-点的颜色解析方法

PCL中点的颜色使用uint8_t来存储R、G、B分量,而在存储时将三个uint8_t合并为一个float。在实际使用中并不需要关心这些细节。单个float类型表示的颜色和三个uint8_t表示的颜色相互转换的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdint.h>
int main()
{
    //定义r、g、b分量
    uint8_t r = 174, g = 64, b = 254;
    //使用位运算符将三个uint8_t合并为一个uint32_t
    uint32_t rgb = (static_cast<uint32_t> (r) << 16 |
        static_cast<uint32_t> (g) << 8 |
        static_cast<uint32_t> (b));
    //将调用reinterpret_cast将uint32_t转换为float
    float rgbF = *reinterpret_cast<float*>(&rgb);
    //将调用reinterpret_cast将uint32_t转换为float
    rgb = *reinterpret_cast<uint32_t*>(&rgbF);
    //解析出r、g、b分量
    uint8_t rr = (rgb >> 16) & 0x0000ff;
    uint8_t gg = (rgb >> 8) & 0x0000ff;
    uint8_t bb = (rgb)& 0x0000ff;
    return (0);
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C++中四种类型转换方式
C++类型转换总结
RGB颜色表
OpenCV-图像明度
C 中的4种类型转换方式
LevelDB源码剖析之Varint | 赖明星
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服