octomap averageNodeColor函数说明

averageNodeColor是ColorOcTreeNode中的函数,参数是x,y,z,r,g,b
在这里插入图片描述
但是官网上没说这函数具体是怎么average color的,于是只好从源码入手
根据官网提示,这个函数在Definition at line 144 of file ColorOcTree.h.

00144     ColorOcTreeNode* averageNodeColor(const float& x, const float& y, 
00145                                       const float& z, const unsigned char& r, 
00146                                       const unsigned char& g, const unsigned char& b) {
00147       OcTreeKey key;
00148       if (!this->coordToKeyChecked(point3d(x,y,z), key)) return NULL;
00149       return averageNodeColor(key,r,g,b);
00150     }

可以看到调用了averageNodeColor(key, r, g, b), 所以看这个重载函数的代码

00145   ColorOcTreeNode* ColorOcTree::averageNodeColor(const OcTreeKey& key, 
00146                                                  const unsigned char& r, 
00147                                                  const unsigned char& g, 
00148                                                  const unsigned char& b) {
00149     ColorOcTreeNode* n = search (key);
00150     if (n != 0) {
00151       if (n->isColorSet()) {
00152         ColorOcTreeNode::Color prev_color = n->getColor();
00153         n->setColor((prev_color.r + r)/2, (prev_color.g + g)/2, (prev_color.b + b)/2); 
00154       }
00155       else {
00156         n->setColor(r, g, b);
00157       }
00158     }
00159     return n;
00160   }

可以看到是每来一个新的颜色(r, g, b), 就把之前的颜色和新的颜色做平均,就相当于这个点上所有颜色求平均。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值