Kinect Сейчас я работаю с PCL и Kinect, функции обратного вызова показан ниже:Как использовать PCL для фильтрации облака точек данных из
Я хочу сделать некоторую фильтрацию, но я не могу получить доступ к «облаку» в функции обратного вызова напрямую, потому что он является постоянным типом, поэтому я копирую его в «cloud2», чтобы увидеть, работает ли он.
В результате получается компиляция, но ошибка времени выполнения, любая помощь мне?
class SimpleOpenNIProcessor
{
public:
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud2;
SimpleOpenNIProcessor() : viewer ("PCL OpenNI Viewer") {}
void cloud_cb_ (const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &cloud)
{
*(cloud2)=*(cloud);
if (!viewer.wasStopped())
viewer.showCloud (cloud);
}
void run()
{
// create a new grabber for OpenNI devices
pcl::Grabber* interface = new pcl::OpenNIGrabber();
// make callback function from member function
boost::function<void (const pcl::PointCloud<pcl::PointXYZ>::ConstPtr&)> f =
boost::bind (&SimpleOpenNIProcessor::cloud_cb_, this, _1);
// connect callback function for desired signal. In this case its a point cloud with color values
boost::signals2::connection c = interface->registerCallback (f);
// start receiving point clouds
interface->start();
// wait until user quits program with Ctrl-C, but no busy-waiting -> sleep (1);
while (true)
sleep(1);
// stop the grabber
interface->stop();
}
pcl::visualization::CloudViewer viewer;
};
int main()
{
SimpleOpenNIProcessor v;
v.run();
return (0);
}
Добро пожаловать на переполнение стека! Чтобы устранить проблему форматирования, которую вы видели с помощью шаблонов, вам необходимо убедиться, что вы помечаете свой код как таковой, используя кнопку {} в редакторе. На данный момент я отредактировал его для вас. – Flexo
Спасибо ~ это работает. –