未验证 提交 b0e579f0 编写于 作者: S Sergey Alexandrov 提交者: GitHub

[cuda/apps] Fixing memory leaks (#3587)

[cuda/apps] Fixing memory leaks
......@@ -237,33 +237,33 @@ class MultiRansac
{
this->use_viewer = use_viewer;
//cudaDeviceSetCacheConfig (cudaFuncCachePreferL1);
pcl::Grabber* interface = new pcl::OpenNIGrabber();
pcl::OpenNIGrabber interface {};
boost::signals2::connection c;
if (use_device)
{
std::cerr << "[RANSAC] Using GPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&MultiRansac::cloud_cb<pcl_cuda::Device>, this, _1, _2, _3);
c = interface->registerCallback (f);
c = interface.registerCallback (f);
}
else
{
std::cerr << "[RANSAC] Using CPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&MultiRansac::cloud_cb<pcl_cuda::Host>, this, _1, _2, _3);
c = interface->registerCallback (f);
c = interface.registerCallback (f);
}
if (use_viewer)
viewer.runOnVisualizationThread (std::bind(&MultiRansac::viz_cb, this, _1), "viz_cb");
interface->start ();
interface.start ();
while (!viewer.wasStopped ())
{
sleep (1);
}
interface->stop ();
interface.stop ();
}
pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr logo_cloud_;
......
......@@ -183,62 +183,61 @@ class NormalEstimation
{
if (use_file)
{
pcl::Grabber* filegrabber = 0;
float frames_per_second = 1;
bool repeat = false;
std::string path = "./frame_0.pcd";
filegrabber = new pcl::PCDGrabber<pcl::PointXYZRGB > (path, frames_per_second, repeat);
pcl::PCDGrabber<pcl::PointXYZRGB > filegrabber {path, frames_per_second, repeat};
if (use_device)
{
std::cerr << "[NormalEstimation] Using GPU..." << std::endl;
std::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = std::bind (&NormalEstimation::file_cloud_cb<Device>, this, _1);
filegrabber->registerCallback (f);
filegrabber.registerCallback (f);
}
else
{
std::cerr << "[NormalEstimation] Using CPU..." << std::endl;
std::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = std::bind (&NormalEstimation::file_cloud_cb<Host>, this, _1);
filegrabber->registerCallback (f);
filegrabber.registerCallback (f);
}
filegrabber->start ();
filegrabber.start ();
while (go_on)//!viewer.wasStopped () && go_on)
{
pcl_sleep (1);
}
filegrabber->stop ();
filegrabber.stop ();
}
else
{
pcl::Grabber* grabber = new pcl::OpenNIGrabber();
pcl::OpenNIGrabber grabber {};
boost::signals2::connection c;
if (use_device)
{
std::cerr << "[NormalEstimation] Using GPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&NormalEstimation::cloud_cb<Device>, this, _1, _2, _3);
c = grabber->registerCallback (f);
c = grabber.registerCallback (f);
}
else
{
std::cerr << "[NormalEstimation] Using CPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&NormalEstimation::cloud_cb<Host>, this, _1, _2, _3);
c = grabber->registerCallback (f);
c = grabber.registerCallback (f);
}
viewer.runOnVisualizationThread (std::bind(&NormalEstimation::viz_cb, this, _1), "viz_cb");
grabber->start ();
grabber.start ();
while (!viewer.wasStopped ())
{
pcl_sleep (1);
}
grabber->stop ();
grabber.stop ();
}
}
......
......@@ -248,45 +248,42 @@ class MultiRansac
{
this->use_viewer = use_viewer;
//cudaDeviceSetCacheConfig (cudaFuncCachePreferL1);
pcl::Grabber* interface = new pcl::OpenNIGrabber();
pcl::OpenNIGrabber interface {};
boost::signals2::connection c;
if (use_device)
{
std::cerr << "[RANSAC] Using GPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&MultiRansac::cloud_cb<Device>, this, _1, _2, _3);
c = interface->registerCallback (f);
c = interface.registerCallback (f);
}
else
{
std::cerr << "[RANSAC] Using CPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&MultiRansac::cloud_cb<Host>, this, _1, _2, _3);
c = interface->registerCallback (f);
c = interface.registerCallback (f);
}
if (use_viewer)
viewer.runOnVisualizationThread (std::bind(&MultiRansac::viz_cb, this, _1), "viz_cb");
interface->start ();
interface.start ();
//--------------------- load pcl logo file
//pcl::Grabber* filegrabber = 0;
//float frames_per_second = 1;
//bool repeat = false;
//std::string path = "./pcl_logo.pcd";
//if (!path.empty() && boost::filesystem::exists (path))
//if (path.empty() || !boost::filesystem::exists (path))
//{
// filegrabber = new pcl::PCDGrabber<pcl::PointXYZRGB > (path, frames_per_second, repeat);
//}
//else
// std::cerr << "did not find file" << std::endl;
//}
//pcl::PCDGrabber<pcl::PointXYZRGB> filegrabber {path, frames_per_second, repeat};
//
//std::function<void(const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&) > f = std::bind (&MultiRansac::logo_cb, this, _1);
//boost::signals2::connection c1 = filegrabber->registerCallback (f);
//boost::signals2::connection c1 = filegrabber.registerCallback (f);
//filegrabber->start ();
//filegrabber.start ();
//------- END --------- load pcl logo file
//
while (!viewer.wasStopped ())
......@@ -294,8 +291,8 @@ class MultiRansac
pcl_sleep (1);
}
//filegrabber->stop ();
interface->stop ();
//filegrabber.stop ();
interface.stop ();
}
pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr logo_cloud_;
......
......@@ -164,57 +164,55 @@ class SimpleKinectTool
bool repeat = false;
std::string path = "./frame_0.pcd";
filegrabber = new pcl::PCDGrabber<pcl::PointXYZRGB > (path, frames_per_second, repeat);
pcl::PCDGrabber<pcl::PointXYZRGB > filegrabber (path, frames_per_second, repeat);
if (use_device)
{
std::cerr << "[RANSAC] Using GPU..." << std::endl;
std::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = std::bind (&SimpleKinectTool::file_cloud_cb<pcl_cuda::Device>, this, _1);
filegrabber->registerCallback (f);
filegrabber.registerCallback (f);
}
else
{
std::cerr << "[RANSAC] Using CPU..." << std::endl;
std::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = std::bind (&SimpleKinectTool::file_cloud_cb<pcl_cuda::Host>, this, _1);
filegrabber->registerCallback (f);
filegrabber.registerCallback (f);
}
filegrabber->start ();
filegrabber.start ();
while (go_on)//!viewer.wasStopped () && go_on)
{
sleep (1);
}
filegrabber->stop ();
filegrabber.stop ();
//------- END --------- load pcl logo file
#else
pcl::Grabber* interface = new pcl::OpenNIGrabber();
pcl::OpenNIGrabber interface {};
boost::signals2::connection c;
if (use_device)
{
std::cerr << "[RANSAC] Using GPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&SimpleKinectTool::cloud_cb<pcl_cuda::Device>, this, _1, _2, _3);
c = interface->registerCallback (f);
c = interface.registerCallback (f);
}
else
{
std::cerr << "[RANSAC] Using CPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&SimpleKinectTool::cloud_cb<pcl_cuda::Host>, this, _1, _2, _3);
c = interface->registerCallback (f);
c = interface.registerCallback (f);
}
//viewer.runOnVisualizationThread (fn, "viz_cb");
interface->start ();
interface.start ();
while (!viewer.wasStopped ())
{
sleep (1);
}
interface->stop ();
interface.stop ();
#endif
}
......
......@@ -363,56 +363,56 @@ class Segmentation
bool repeat = false;
std::string path = "./frame_0.pcd";
filegrabber = new pcl::PCDGrabber<pcl::PointXYZRGB > (path, frames_per_second, repeat);
pcl::PCDGrabber<pcl::PointXYZRGB > filegrabber {path, frames_per_second, repeat};
if (use_device)
{
std::cerr << "[Segmentation] Using GPU..." << std::endl;
std::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = std::bind (&Segmentation::file_cloud_cb<Device>, this, _1);
filegrabber->registerCallback (f);
filegrabber.registerCallback (f);
}
else
{
// std::cerr << "[Segmentation] Using CPU..." << std::endl;
// std::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = std::bind (&Segmentation::file_cloud_cb<Host>, this, _1);
// filegrabber->registerCallback (f);
// filegrabber.registerCallback (f);
}
filegrabber->start ();
filegrabber.start ();
while (go_on)//!viewer.wasStopped () && go_on)
{
pcl_sleep (1);
}
filegrabber->stop ();
filegrabber.stop ();
}
else
{
pcl::Grabber* grabber = new pcl::OpenNIGrabber();
pcl::OpenNIGrabber grabber {};
boost::signals2::connection c;
if (use_device)
{
std::cerr << "[Segmentation] Using GPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&Segmentation::cloud_cb<Device>, this, _1, _2, _3);
c = grabber->registerCallback (f);
c = grabber.registerCallback (f);
}
else
{
// std::cerr << "[Segmentation] Using CPU..." << std::endl;
// std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&Segmentation::cloud_cb<Host>, this, _1, _2, _3);
// c = grabber->registerCallback (f);
// c = grabber.registerCallback (f);
}
viewer.runOnVisualizationThread (std::bind(&Segmentation::viz_cb, this, _1), "viz_cb");
grabber->start ();
grabber.start ();
while (!viewer.wasStopped ())
{
pcl_sleep (1);
}
grabber->stop ();
grabber.stop ();
}
}
......
......@@ -232,62 +232,60 @@ class Segmentation
{
if (use_file)
{
pcl::Grabber* filegrabber = 0;
float frames_per_second = 1;
bool repeat = false;
std::string path = "./frame_0.pcd";
filegrabber = new pcl::PCDGrabber<pcl::PointXYZRGB > (path, frames_per_second, repeat);
pcl::PCDGrabber<pcl::PointXYZRGB > filegrabber {path, frames_per_second, repeat};
if (use_device)
{
std::cerr << "[Segmentation] Using GPU..." << std::endl;
std::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = std::bind (&Segmentation::file_cloud_cb<Device>, this, _1);
filegrabber->registerCallback (f);
filegrabber.registerCallback (f);
}
else
{
// std::cerr << "[Segmentation] Using CPU..." << std::endl;
// std::function<void (const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr&)> f = std::bind (&Segmentation::file_cloud_cb<Host>, this, _1);
// filegrabber->registerCallback (f);
// filegrabber.registerCallback (f);
}
filegrabber->start ();
filegrabber.start ();
while (go_on)//!viewer.wasStopped () && go_on)
{
pcl_sleep (1);
}
filegrabber->stop ();
filegrabber.stop ();
}
else
{
pcl::Grabber* grabber = new pcl::OpenNIGrabber();
pcl::OpenNIGrabber grabber {};
boost::signals2::connection c;
if (use_device)
{
std::cerr << "[Segmentation] Using GPU..." << std::endl;
std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&Segmentation::cloud_cb<Device>, this, _1, _2, _3);
c = grabber->registerCallback (f);
c = grabber.registerCallback (f);
}
else
{
// std::cerr << "[Segmentation] Using CPU..." << std::endl;
// std::function<void (const openni_wrapper::Image::Ptr& image, const openni_wrapper::DepthImage::Ptr& depth_image, float)> f = std::bind (&Segmentation::cloud_cb<Host>, this, _1, _2, _3);
// c = grabber->registerCallback (f);
// c = grabber.registerCallback (f);
}
viewer.runOnVisualizationThread (std::bind(&Segmentation::viz_cb, this, _1), "viz_cb");
grabber->start ();
grabber.start ();
while (!viewer.wasStopped ())
{
pcl_sleep (1);
}
grabber->stop ();
grabber.stop ();
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册