可是这不是二进制描述子了
时间: 2024-02-15 07:04:39 浏览: 70
仿视网膜采样的二进制描述子
非常抱歉,我的回答还是有误。如果您使用的是二进制描述子,那么 `histogram` 的确不是 `pcl::SHOT352` 或 `pcl::SHOTColor` 或 `pcl::SHOT1344` 的成员,因为二进制描述子不是基于直方图的,而是基于比特位的。
对于二进制描述子,可以使用以下代码输出特定项的值:
```
std::cout << ((descriptor2.descriptor[k/8] & (1 << (k%8))) != 0) << std::endl;
```
其中,`descriptor2.descriptor` 是一个 `pcl::SHOT352` 或 `pcl::SHOTColor` 或 `pcl::SHOT1344` 变量的数组,它包含变量的二进制描述子中的每个比特位的值。由于每个比特位只能表示 0 或 1,因此可以使用一个布尔表达式来输出它的值。具体来说,这个表达式使用了按位与和位移运算符,以获取 `descriptor2.descriptor[k/8]` 中的第 `k%8` 个比特位的值,并将其转换为布尔类型。因为每个字节可以表示 8 个比特位,所以 `k/8` 计算了需要访问的字节的索引。注意,这个代码假设二进制描述子是按照字节边界对齐的,即每 8 个比特位存储在一个字节中。如果您使用的是不同的比特位对齐方式,则需要相应地修改代码。
阅读全文