#include <edge_points_likelihood.h>

unsigned int  edge_pt_row 
 Edge point detected in the input image. More...


unsigned int  edge_pt_col 

double  edge_pt_drow 

double  edge_pt_dcol 

unsigned int  edge_pt_num 
 Index number of the edge point detected, starting with 0. More...


unsigned int  model_pt_row 
 Row number for the model point corresponding to the edge point. More...


unsigned int  model_pt_col 
 Column number for the model point corresponding to the edge point. More...


unsigned int  model_edge_index 

double  dtheta 
 Size of a bin in the discretized angle space. More...


std::vector< double >  angles 
 Discretized angles between model point normals and an edge point's gradient. More...


double  angle 
 Angle between model point normal and an edge point's gradient, once the correspondence is known. More...


std::vector< double >  gauss_angles 
 Gaussian likelihood of the discretized angles angle. This is proportional to the difference in orienation between model edge and detected edge. We compute it for any bin of the discretized angle space. More...


double  gauss_angle 
 Gaussian likelihood of the angle, once the correspondence is known. More...


std::vector< double >  norm_dists 
 Euclidean distance from the model point to the generative approximation of the edge point along, that lies both in the direction perpendicular to the gradient of the detected edge and in the direction perpendicular to the model edge. This changes with the model edge orientation, and we need to compute it for every angle bin. More...


double  norm_dist 
 Euclidean distance from the model point to the generative approximation of the edge point along, that lies both in the direction perpendicular to the gradient of the detected edge and in the direction perpendicular to the model edge. Computed once the correspondence is known. More...


std::vector< double >  gauss_norm_dists 
 Gaussian likelihood of the Euclidean normal distance. More...


double  gauss_norm_dist 
 Gaussian likelihood of the Euclidean normal distance (once the correspondence is known) More...


double  grad_dist 
 Distance between the model point and the edge point along the direction of the edge gradient. This does not depend on the model edge orientation. More...


Correspondence point between a model point and edge point. For efficiency reasons, we store the precomputed distance penalties for distance and difference in orientation for any possible model edge orientation (the angle space is discretized in n bins). Once the model point is known, this will also store the actual penalty for that particular model point.
Correspondence::Point::Point 
( 
const kjb::Edge_point & 
iedge_pt, 


unsigned int 
iedge_pt_num, 


unsigned int 
imodel_pt_row, 


unsigned int 
imodel_pt_col, 


unsigned int 
num_angles, 


double 
angle_sigma, 


double 
dist_sigma 

) 
 
Constructor.
A point correspondence between a model point and a detected edge point. For efficiency, given an edge point we follow from it the direction defined by the edge gradient, and we consider all points along this direction within a certain distance. This class stores the precomputed information for a possible match between one edge point and one model point. For each point correspondence, we precompute the assignment penalty which depends on the difference in orientation between the model edge orientation and the detected edge orientation. We precompute this penalty for each possible orientation (we actually divide the angle space in n bins). The penalty also depends on the distance between the model point and the generative approximation of the edge point given the actual position of the edge point and the position of the model point. This approximation is perpendicular both to the edge gradient and to the model edge. The penalties for both distance and angle are computed using gaussian distributions with 0 mean and the input variances.
This function assumes that the model point lies along the direction perpendicular to the edge gradient at the edge point. (This is how we compute possible correspondences). For more details please see Figure 6 in http://vision.cs.arizona.edu/~schlecht/research/furniture/papers/schlecht2009b.pdf
 Parameters

iedge_pt  The detected edge point 
iedge_pt_num  The number (id) of the detected edge point 
imodel_pt_row  The position in the image of the model edge point assigned to this edge point (row) 
imodel_pt_col  The position in the image of the model edge point assigned to this edge point (col) This point is assumed to lie in the direction perpendicular to the detected edge gradient computed at iedge_pt 
num_angles  The number of bins used to partition the angle space (from 0 to 90 degrees, due to symmetry) 
angle_sigma  The standard deviation for the Gaussian distribution (with zero mean) used to compute the angle penalty 
dist_sigma  The standard deviation for the Gaussian distribution (with zero mean) used to compute the distance penalty 
Correspondence::Point::Point 
( 
const Point & 
p  ) 

Copy constructor.
Copy constructor
 Parameters

p  the point to copy into this one 
bool Correspondence::Point::operator< 
( 
const Point & 
p  ) 
const 
Compares two Correspondence Points based on the normal distance between model point and the edge point along the edge gradient.
This operator is defined in terms of the Euclidean distance between model point and edge point along the edge gradient direction. This operator is used to sort correspondence points according to this parameter
 Parameters

Assignment operator.
Assignment operator
 Parameters

p  The point to assign this one to 
double kjb::Correspondence::Point::angle 
Angle between model point normal and an edge point's gradient, once the correspondence is known.
Because of symmetry, ranges 0 to PI/2.
std::vector<double> kjb::Correspondence::Point::angles 
Discretized angles between model point normals and an edge point's gradient.
Because of symmetry, ranges 0 to PI/2.
double kjb::Correspondence::Point::dtheta 
Size of a bin in the discretized angle space.
unsigned int kjb::Correspondence::Point::edge_pt_col 
double kjb::Correspondence::Point::edge_pt_dcol 
double kjb::Correspondence::Point::edge_pt_drow 
unsigned int kjb::Correspondence::Point::edge_pt_num 
Index number of the edge point detected, starting with 0.
unsigned int kjb::Correspondence::Point::edge_pt_row 
Edge point detected in the input image.
double kjb::Correspondence::Point::gauss_angle 
Gaussian likelihood of the angle, once the correspondence is known.
std::vector<double> kjb::Correspondence::Point::gauss_angles 
Gaussian likelihood of the discretized angles angle. This is proportional to the difference in orienation between model edge and detected edge. We compute it for any bin of the discretized angle space.
double kjb::Correspondence::Point::gauss_norm_dist 
Gaussian likelihood of the Euclidean normal distance (once the correspondence is known)
std::vector<double> kjb::Correspondence::Point::gauss_norm_dists 
Gaussian likelihood of the Euclidean normal distance.
double kjb::Correspondence::Point::grad_dist 
Distance between the model point and the edge point along the direction of the edge gradient. This does not depend on the model edge orientation.
unsigned int kjb::Correspondence::Point::model_edge_index 
unsigned int kjb::Correspondence::Point::model_pt_col 
Column number for the model point corresponding to the edge point.
unsigned int kjb::Correspondence::Point::model_pt_row 
Row number for the model point corresponding to the edge point.
double kjb::Correspondence::Point::norm_dist 
Euclidean distance from the model point to the generative approximation of the edge point along, that lies both in the direction perpendicular to the gradient of the detected edge and in the direction perpendicular to the model edge. Computed once the correspondence is known.
std::vector<double> kjb::Correspondence::Point::norm_dists 
Euclidean distance from the model point to the generative approximation of the edge point along, that lies both in the direction perpendicular to the gradient of the detected edge and in the direction perpendicular to the model edge. This changes with the model edge orientation, and we need to compute it for every angle bin.
The documentation for this class was generated from the following files: