#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/schlecht-2009b.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: