#include <arm_obj_segmentation.h>
Public Member Functions | |
ArmObjSegmentation (float fg_tied_weight=10.0, float bg_tied_weight=10.0, float bg_enlarge_size=100, float arm_enlarge_width=15, float arm_shrink_width_=15, float sigma=1.0, float lambda=5.0) | |
void | buildBGColorModel (GMM &table_color_model, GMM &obj_color_model) |
void | loadArmColorModel (std::string file_path) |
void | loadBGColorModel (std::string file_path) |
cv::Mat | segment (cv::Mat &color_img, cv::Mat &depth_img, cv::Mat &self_mask, cv::Mat &table_mask, bool init_color_models=true) |
void | setBGColorModel (GMM &new_bg_model) |
Static Public Member Functions | |
static cv::Mat | getArmBand (cv::Mat &input_mask, int enlarge_width, int shrink_width, bool input_inverted=true) |
static cv::Mat | getArmBand (cv::Mat &input_mask, int enlarge_width, int shrink_width, bool input_inverted, cv::Mat &larger_mask, cv::Mat &smaller_mask) |
Protected Member Functions | |
float | getEdgeWeightBoundary (float c0, float d0, float c1, float d1) |
cv::Mat | getXImageDeriv (cv::Mat &color_img) |
cv::Mat | getYImageDeriv (cv::Mat &color_img) |
Static Protected Member Functions | |
static cv::Mat | convertFlowToMat (tabletop_pushing::GraphType *g, tabletop_pushing::NodeTable &nt, int R, int C) |
static GMM | getGMMColorModel (cv::Mat &samples, cv::Mat &mask, int nc=10) |
static cv::Mat | getMorphCross (int img_size, int cross_width) |
static float | getUnaryWeight (cv::Vec3f sample, GMM &fg_color_model) |
Protected Attributes | |
GMM | arm_color_model_ |
float | arm_enlarge_width_ |
float | arm_shrink_width_ |
GMM | bg_color_model_ |
float | bg_enlarge_size_ |
float | bg_tied_weight_ |
cv::Mat | dx_kernel_ |
cv::Mat | dy_kernel_ |
float | fg_tied_weight_ |
bool | have_arm_color_model_ |
bool | have_bg_color_model_ |
float | pairwise_lambda_ |
float | sigma_d_ |
Definition at line 14 of file arm_obj_segmentation.h.
tabletop_pushing::ArmObjSegmentation::ArmObjSegmentation | ( | float | fg_tied_weight = 10.0 , |
float | bg_tied_weight = 10.0 , |
||
float | bg_enlarge_size = 100 , |
||
float | arm_enlarge_width = 15 , |
||
float | arm_shrink_width_ = 15 , |
||
float | sigma = 1.0 , |
||
float | lambda = 5.0 |
||
) |
Definition at line 61 of file arm_obj_segmentation.cpp.
void tabletop_pushing::ArmObjSegmentation::buildBGColorModel | ( | GMM & | table_color_model, |
GMM & | obj_color_model | ||
) |
Definition at line 454 of file arm_obj_segmentation.cpp.
cv::Mat tabletop_pushing::ArmObjSegmentation::convertFlowToMat | ( | tabletop_pushing::GraphType * | g, |
tabletop_pushing::NodeTable & | nt, | ||
int | R, | ||
int | C | ||
) | [static, protected] |
Definition at line 326 of file arm_obj_segmentation.cpp.
cv::Mat tabletop_pushing::ArmObjSegmentation::getArmBand | ( | cv::Mat & | input_mask, |
int | enlarge_width, | ||
int | shrink_width, | ||
bool | input_inverted = true |
||
) | [static] |
Definition at line 367 of file arm_obj_segmentation.cpp.
cv::Mat tabletop_pushing::ArmObjSegmentation::getArmBand | ( | cv::Mat & | input_mask, |
int | enlarge_width, | ||
int | shrink_width, | ||
bool | input_inverted, | ||
cv::Mat & | larger_mask, | ||
cv::Mat & | smaller_mask | ||
) | [static] |
Method to create a mask near the perimeter of the robots projected arm mask
input_mask | The robot's projected arm mask |
enlarge_width | Amount to dilate the arm mask to get outer band |
shrink_width | Amount to erode the arm mask to get the innner band |
input_inverted | Set to true if arm is 0 and background is 255 |
Definition at line 384 of file arm_obj_segmentation.cpp.
float tabletop_pushing::ArmObjSegmentation::getEdgeWeightBoundary | ( | float | c0, |
float | d0, | ||
float | c1, | ||
float | d1 | ||
) | [protected] |
Definition at line 343 of file arm_obj_segmentation.cpp.
GMM tabletop_pushing::ArmObjSegmentation::getGMMColorModel | ( | cv::Mat & | samples, |
cv::Mat & | mask, | ||
int | nc = 10 |
||
) | [static, protected] |
Definition at line 406 of file arm_obj_segmentation.cpp.
cv::Mat tabletop_pushing::ArmObjSegmentation::getMorphCross | ( | int | img_size, |
int | cross_width | ||
) | [static, protected] |
Definition at line 308 of file arm_obj_segmentation.cpp.
float tabletop_pushing::ArmObjSegmentation::getUnaryWeight | ( | cv::Vec3f | sample, |
GMM & | fg_color_model | ||
) | [static, protected] |
Definition at line 430 of file arm_obj_segmentation.cpp.
cv::Mat tabletop_pushing::ArmObjSegmentation::getXImageDeriv | ( | cv::Mat & | color_img | ) | [protected] |
Definition at line 351 of file arm_obj_segmentation.cpp.
cv::Mat tabletop_pushing::ArmObjSegmentation::getYImageDeriv | ( | cv::Mat & | color_img | ) | [protected] |
Definition at line 359 of file arm_obj_segmentation.cpp.
void tabletop_pushing::ArmObjSegmentation::loadArmColorModel | ( | std::string | file_path | ) |
Definition at line 436 of file arm_obj_segmentation.cpp.
void tabletop_pushing::ArmObjSegmentation::loadBGColorModel | ( | std::string | file_path | ) |
Definition at line 442 of file arm_obj_segmentation.cpp.
cv::Mat tabletop_pushing::ArmObjSegmentation::segment | ( | cv::Mat & | color_img, |
cv::Mat & | depth_img, | ||
cv::Mat & | self_mask, | ||
cv::Mat & | table_mask, | ||
bool | init_color_models = true |
||
) |
Definition at line 74 of file arm_obj_segmentation.cpp.
void tabletop_pushing::ArmObjSegmentation::setBGColorModel | ( | GMM & | new_bg_model | ) |
Definition at line 448 of file arm_obj_segmentation.cpp.
Definition at line 49 of file arm_obj_segmentation.h.
float tabletop_pushing::ArmObjSegmentation::arm_enlarge_width_ [protected] |
Definition at line 43 of file arm_obj_segmentation.h.
float tabletop_pushing::ArmObjSegmentation::arm_shrink_width_ [protected] |
Definition at line 44 of file arm_obj_segmentation.h.
Definition at line 50 of file arm_obj_segmentation.h.
float tabletop_pushing::ArmObjSegmentation::bg_enlarge_size_ [protected] |
Definition at line 42 of file arm_obj_segmentation.h.
float tabletop_pushing::ArmObjSegmentation::bg_tied_weight_ [protected] |
Definition at line 41 of file arm_obj_segmentation.h.
cv::Mat tabletop_pushing::ArmObjSegmentation::dx_kernel_ [protected] |
Definition at line 48 of file arm_obj_segmentation.h.
cv::Mat tabletop_pushing::ArmObjSegmentation::dy_kernel_ [protected] |
Definition at line 47 of file arm_obj_segmentation.h.
float tabletop_pushing::ArmObjSegmentation::fg_tied_weight_ [protected] |
Definition at line 40 of file arm_obj_segmentation.h.
Definition at line 51 of file arm_obj_segmentation.h.
Definition at line 52 of file arm_obj_segmentation.h.
float tabletop_pushing::ArmObjSegmentation::pairwise_lambda_ [protected] |
Definition at line 46 of file arm_obj_segmentation.h.
float tabletop_pushing::ArmObjSegmentation::sigma_d_ [protected] |
Definition at line 45 of file arm_obj_segmentation.h.