Код: Выделить всё
if (surface_ != input_ ||
indices_->size () != surface_->size ())
{
for (const auto& p_idx: *indices_)
{
if (this->searchForNeighbors (p_idx, search_parameter_, nn_indices, nn_dists) == 0)
continue;
spfh_indices.insert (nn_indices.begin (), nn_indices.end ());
}
}`
Например, после понижения разрешения облака точек, где поверхность_ != input_ имеет значение true, this->searchForNeighbors(p_idx, search_parameter_, nn_indices , nn_dists) выполняет поиск ближайшего соседа в облаке точек с пониженной дискретизацией. Несмотря на это, после цикла spfh_indices по-прежнему сохраняет индексы из input_. В чем тогда его значение? Мы можем просто присвоить индексы, хранящиеся в index_, spfh_indices.
Ссылка на репозиторий: https://github.com/ PointCloudLibrary/pcl/blob/master/features/include/pcl/features/impl/fpfh.hpp
https://github.com/PointCloudLibrary/pc ... tures/fpfh .h
Я не понимаю цели этого фрагмента кода.
Подробнее здесь: https://stackoverflow.com/questions/786 ... neffective