19 #ifndef EDGE_LINES_LIKELIHOOD_H_INCLUDED
20 #define EDGE_LINES_LIKELIHOOD_H_INCLUDED
80 unsigned int imodel_edge_segment_index,
130 return m_model_corresponding_image_edges;
135 return m_max_distance;
140 return noisy_image_edge_segments;
150 const std::vector<Model_edge>& model_edge_segments
157 double m_max_distance;
163 double m_angle_sigma;
174 std::vector<std::list<Line_bin> > m_image_corresponding_model_edges;
181 std::vector<std::vector<Line_bin*> > m_model_corresponding_image_edges;
184 std::vector<const Edge_segment*> noisy_image_edge_segments;
213 double prob_of_missing,
214 double prob_of_noise,
217 double collinear_distance_threshold
227 template <
class T,
class U>
232 double operator()(std::vector<Model_edge>& model_edges);
237 Image& model_edge_image,
238 Image& data_edge_image,
239 const std::vector<Model_edge>& model_edges,
263 double m_prob_of_missing;
266 double m_prob_of_noise;
272 double m_collinear_distance_threshold;
291 std::vector<Model_edge> model_edges;
292 model.prepare_model_map(model_map);
293 model.prepare_rendered_model_edges(model_edges, model_map);
312 template <
class T,
class U>
315 std::vector<Model_edge> model_edges;
316 model.prepare_model_map(model_map);
317 model.prepare_rendered_model_edges(model_edges, model_map);
double gauss_distance
normal pdf of distance
Definition: edge_lines_likelihood.h:112
Definition: edge_segment.h:36
Definition: model_edge.h:73
~Line_correspondence()
Definition: edge_lines_likelihood.h:62
This class implements matrices, in the linear-algebra sense, restricted to integer-valued elements...
Definition: l_int_matrix.h:71
unsigned int model_edge_segment_index
Definition: edge_lines_likelihood.h:103
Definition: edge_lines_likelihood.h:193
const std::vector< std::vector< Line_bin * > > & get_model_corresponding_image_edges() const
Return a map of model_to_image_correspondence Indexed by image edge segments and sorted by the gauss_...
Definition: edge_lines_likelihood.h:128
Compare the corresponding Line_bin based on the x position of the starting point of the image edge se...
Definition: edge_lines_likelihood.h:89
float angle
Angle between an image edge segment and a model edge Because of symmetry, ranges 0 to PI/2...
Definition: edge_lines_likelihood.h:118
double compute_likelihood(T &model)
Definition: edge_lines_likelihood.h:289
bool operator<(const Line_bin &l_bin) const
Compare the correspondence based on the distance between the middle points of the model edge and edge...
Definition: edge_lines_likelihood.cpp:48
bool operator()(const Line_bin *line_bin1, const Line_bin *line_bin2) const
Compare the corresponding Line_bin based on the x position of the starting point of the image edge se...
Definition: edge_lines_likelihood.cpp:35
St_perspective_camera for modeling a perspective camera using the classic Forsyth and Ponce parametri...
std::vector< const Edge_segment * > get_noisy_edge_segments()
Definition: edge_lines_likelihood.h:138
const Edge_segment & image_edge_segment
Definition: edge_lines_likelihood.h:101
void draw_correspondence(Image &model_edge_image, Image &data_edge_image, const std::vector< Model_edge > &model_edges, double width)
Definition: edge_lines_likelihood.cpp:345
double operator()(std::vector< Model_edge > &model_edges)
Calculates and return the likelihood for a set of model edges.
Definition: edge_lines_likelihood.cpp:233
double gauss_angle
normal pdf of the angle.
Definition: edge_lines_likelihood.h:121
Definition: edge_lines_likelihood.h:45
void find_model_corresponding_image_edges(const std::vector< Model_edge > &model_edge_segments)
Find the correspoinding image edges for each model edge based on m_image_edge_correspondence, the correspondence will be stored in m_model_edge_correspondence.
Definition: edge_lines_likelihood.cpp:102
float distance
Euclidean distance from the middle point of the image edge segment to the model edge.
Definition: edge_lines_likelihood.h:109
Class to manipulate a set of edge segments.
Definition: line_segment_set.h:128
Wrapped version of the C struct KJB_image.
Definition: i_image.h:76
Line_correspondence(const Edge_segment_set &image_edge_segments, double angle_sigma, double dist_sigma, double max_distance, double max_angle)
Creates a new correspondence between collinear edge segments and model edge lines.
Definition: edge_lines_likelihood.cpp:62
double get_max_distance() const
Definition: edge_lines_likelihood.h:133
Definition: edge_lines_likelihood.h:68
Line_bin(const Edge_segment &iimage_edge_segment, const Model_edge &model_edge_segment, unsigned int imodel_edge_segment_index, double angle_sigma, double dist_sigma)
Constructs a new bin between an Model_edge and a Edge_segment.
Definition: edge_lines_likelihood.cpp:82
Edge_lines_likelihood(const Edge_segment_set &iimage_edge_segments, double angle_sigma, double dist_sigma, double prob_of_missing, double prob_of_noise, double max_distance, double max_angle, double collinear_distance_threshold)
Constructs a new Edge_lines_likelihood.
Definition: edge_lines_likelihood.cpp:210