void vm::scanner::cuda::computePointNormals(const Intr& intr, const Depth& depth, Cloud& points, Normals& normals) { points.create(depth.rows(), depth.cols()); normals.create(depth.rows(), depth.cols()); device::Reprojector reproj(intr.fx, intr.fy, intr.cx, intr.cy); device::Points& p = (device::Points&)points; device::Normals& n = (device::Normals&)normals; device::computePointNormals(reproj, depth, p, n); }
void kf::cuda::computePointNormals(const Intr& intr, const Depth& depth, Points& points, Normals& normals) { points.create(depth.rows(), depth.cols()); normals.create(depth.rows(), depth.cols()); impl::Reprojector reproj(intr.fx, intr.fy, intr.cx, intr.cy); impl::Points& p = (impl::Points&)points; impl::Normals& n = (impl::Normals&)normals; impl::computePointNormals(reproj, depth, p, n); }
void vm::scanner::cuda::computeNormalsAndMaskDepth(const Intr& intr, Depth& depth, Normals& normals) { normals.create(depth.rows(), depth.cols()); device::Reprojector reproj(intr.fx, intr.fy, intr.cx, intr.cy); device::Normals& n = (device::Normals&)normals; device::computeNormalsAndMaskDepth(reproj, depth, n); }
void kf::cuda::computeNormalsAndMaskDepth(const Intr& intr, Depth& depth, Normals& normals) { normals.create(depth.rows(), depth.cols()); impl::Reprojector reproj(intr.fx, intr.fy, intr.cx, intr.cy); impl::Normals& n = (impl::Normals&)normals; impl::computeNormalsAndMaskDepth(reproj, depth, n); }
void vm::scanner::cuda::resizeDepthNormals(const Depth& depth, const Normals& normals, Depth& depth_out, Normals& normals_out) { depth_out.create (depth.rows()/2, depth.cols()/2); normals_out.create (normals.rows()/2, normals.cols()/2); device::Normals& nsrc = (device::Normals&)normals; device::Normals& ndst = (device::Normals&)normals_out; device::resizeDepthNormals(depth, nsrc, depth_out, ndst); }
void kf::cuda::resizeDepthNormals(const Depth& depth, const Normals& normals, Depth& depth_out, Normals& normals_out) { depth_out.create (depth.rows()/2, depth.cols()/2); normals_out.create (normals.rows()/2, normals.cols()/2); impl::Normals& nsrc = (impl::Normals&)normals; impl::Normals& ndst = (impl::Normals&)normals_out; impl::resizeDepthNormals(depth, nsrc, depth_out, ndst); }
void vm::scanner::cuda::renderImage(const Depth& depth, const Normals& normals, const Intr& intr, const Vec3f& light_pose, Image& image) { image.create(depth.rows(), depth.cols()); const device::Depth& d = (const device::Depth&)depth; const device::Normals& n = (const device::Normals&)normals; device::Reprojector reproj(intr.fx, intr.fy, intr.cx, intr.fy); device::Vec3f light = device_cast<device::Vec3f>(light_pose); device::Image& i = (device::Image&)image; device::renderImage(d, n, reproj, light, i); waitAllDefaultStream(); }
void pcl::gpu::people::PeopleDetector::process(const Depth& depth, const Image& rgba) { int cols; allocate_buffers(depth.rows(), depth.cols()); depth_device1_ = depth; const device::Image& i = (const device::Image&)rgba; device::computeHueWithNans(i, depth_device1_, hue_device_); //TODO Hope this is temporary and after porting to GPU the download will be deleted hue_device_.download(hue_host_.points, cols); device::Intr intr(fx_, fy_, cx_, cy_); intr.setDefaultPPIfIncorrect(depth.cols(), depth.rows()); device::Cloud& c = (device::Cloud&)cloud_device_; device::computeCloud(depth, intr, c); cloud_device_.download(cloud_host_.points, cols); // uses cloud device, cloud host, depth device, hue device and other buffers process(); }
void vm::scanner::cuda::computeDists(const Depth& depth, Dists& dists, const Intr& intr) { dists.create(depth.rows(), depth.cols()); device::compute_dists(depth, dists, make_float2(intr.fx, intr.fy), make_float2(intr.cx, intr.cy)); }
void vm::scanner::cuda::depthBilateralFilter(const Depth& in, Depth& out, int kernel_size, float sigma_spatial, float sigma_depth) { out.create(in.rows(), in.cols()); device::bilateralFilter(in, out, kernel_size, sigma_spatial, sigma_depth); }
void vm::scanner::cuda::depthBuildPyramid(const Depth& depth, Depth& pyramid, float sigma_depth) { pyramid.create (depth.rows () / 2, depth.cols () / 2); device::depthPyr(depth, pyramid, sigma_depth); }
void kf::cuda::computeDists(const Depth& depth, Dists& dists, const Intr& intr) { dists.create(depth.rows(), depth.cols()); impl::compute_dists(depth, dists, make_float2(intr.fx, intr.fy), make_float2(intr.cx, intr.cy)); }
void kf::cuda::depthBuildPyramid(const Depth& depth, Depth& pyramid, float sigma_depth) { pyramid.create (depth.rows () / 2, depth.cols () / 2); impl::depthPyr(depth, pyramid, sigma_depth); }