#include <ros/ros.h>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <tf/transform_datatypes.h>
#include <pcl/filters/voxel_grid.h>
#include <opencv2/opencv.hpp>
#include "ccny_rgbd/types.h"
Go to the source code of this file.
Namespaces | |
namespace | ccny_rgbd |
Functions | |
void | ccny_rgbd::buildPointCloud (const cv::Mat &depth_img_rect, const cv::Mat &intr_rect_ir, PointCloudT &cloud) |
Constructs a point cloud, a depth image and instrinsic matrix. | |
void | ccny_rgbd::buildPointCloud (const cv::Mat &depth_img_rect_reg, const cv::Mat &rgb_img_rect, const cv::Mat &intr_rect_rgb, PointCloudT &cloud) |
Constructs a point cloud with color. | |
void | ccny_rgbd::buildRegisteredDepthImage (const cv::Mat &intr_rect_ir, const cv::Mat &intr_rect_rgb, const cv::Mat &ir2rgb, const cv::Mat &depth_img_rect, cv::Mat &depth_img_rect_reg) |
reprojects a depth image to another depth image, registered in the rgb camera's frame. | |
void | ccny_rgbd::convertCameraInfoToMats (const CameraInfoMsg::ConstPtr camera_info_msg, cv::Mat &intr, cv::Mat &dist) |
Create OpenCV matrices from a CameraInfoMsg. | |
void | ccny_rgbd::convertMatToCameraInfo (const cv::Mat &intr, CameraInfoMsg &camera_info_msg) |
Create CameraInfoMsg from OpenCV matrices (assumes no distortion) | |
void | ccny_rgbd::depthImageFloatTo16bit (const cv::Mat &depth_image_in, cv::Mat &depth_image_out) |
converts a 32FC1 depth image (in meters) to a 16UC1 depth image (in mm). | |
Eigen::Matrix4f | ccny_rgbd::eigenFromTf (const tf::Transform &tf) |
Converts an tf::Transform transform to an Eigen transform. | |
double | ccny_rgbd::getMsDuration (const ros::WallTime &start) |
Returns the duration, in ms, from a given time. | |
void | ccny_rgbd::getTfDifference (const tf::Transform &motion, double &dist, double &angle) |
Given a transform, calculates the linear and angular distance between it and identity. | |
void | ccny_rgbd::getTfDifference (const tf::Transform &a, const tf::Transform b, double &dist, double &angle) |
Given two transformss, calculates the linear and angular distance between them, or the linear and angular components of a.inv() * b. | |
void | ccny_rgbd::openCVRtToTf (const cv::Mat &R, const cv::Mat &t, tf::Transform &transform) |
Creates a tf transform from a 3x3 OpenCV rotation matrix and a 3x1 OpenCV translation vector. | |
void | ccny_rgbd::pointCloudFromMeans (const Vector3fVector &means, PointCloudFeature &cloud) |
Creates a pcl point cloud form a vector of eigen matrix means. | |
void | ccny_rgbd::removeInvalidDistributions (const Vector3fVector &means, const Matrix3fVector &covariances, const BoolVector &valid, Vector3fVector &means_f, Matrix3fVector &covariances_f) |
Filters out a vector of means and a vector of covariances given a mask of valid entries. | |
void | ccny_rgbd::removeInvalidMeans (const Vector3fVector &means, const BoolVector &valid, Vector3fVector &means_f) |
Filters out a vector of means given a mask of valid entries. | |
tf::Transform | ccny_rgbd::tfFromEigen (Eigen::Matrix4f trans) |
Converts an Eigen transform to a tf::Transform. | |
bool | ccny_rgbd::tfGreaterThan (const tf::Transform &a, double dist, double angle) |
Given a transfom (possibly computed as a difference between two transforms) checks if either its angular or linar component exceeds a threshold. | |
void | ccny_rgbd::tfToEigenRt (const tf::Transform &tf, Matrix3f &R, Vector3f &t) |
Decomposes a tf into an Eigen 3x3 rotation matrix and Eigen 3x1 rotation vector. | |
void | ccny_rgbd::tfToOpenCVRt (const tf::Transform &transform, cv::Mat &R, cv::Mat &t) |
Decomposes a tf::Transform into a 3x3 OpenCV rotation matrix and a 3x1 OpenCV translation vector. | |
void | ccny_rgbd::tfToXYZRPY (const tf::Transform &t, double &x, double &y, double &z, double &roll, double &pitch, double &yaw) |
Decomposes a tf::Transform into x, y, z, roll, pitch, yaw. | |
void | ccny_rgbd::transformDistributions (Vector3fVector &means, Matrix3fVector &covariances, const tf::Transform &transform) |
Transforms a vector of means and covariances. | |
void | ccny_rgbd::transformMeans (Vector3fVector &means, const tf::Transform &transform) |
Transforms a vector of means. |
Copyright (C) 2013, City University of New York CCNY Robotics Lab <http://robotics.ccny.cuny.edu>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Definition in file rgbd_util.h.