contrib/mul/mfpf/mfpf_prune_overlaps.h
Go to the documentation of this file.
00001 #ifndef mfpf_prune_overlaps_h_
00002 #define mfpf_prune_overlaps_h_
00003 //:
00004 // \file
00005 // \brief Function to remove any overlapping matching responses
00006 // \author Tim Cootes
00007 
00008 #include <mfpf/mfpf_point_finder.h>
00009 
00010 //: Remove any overlapping matching responses (retaining best fit)
00011 void mfpf_prune_overlaps(mfpf_point_finder& pf,
00012                          vcl_vector<mfpf_pose>& poses,
00013                          vcl_vector<double>& fits);
00014 
00015 
00016 //: Find list of poses overlapping given pose
00017 void mfpf_find_overlaps(mfpf_point_finder& pf,
00018                         const vcl_vector<mfpf_pose>& poses,
00019                         const mfpf_pose& pose, 
00020                         vcl_vector<unsigned>& overlaps);
00021 
00022 //: Return true if pose overlaps with any of poses
00023 bool mfpf_any_overlaps(mfpf_point_finder& pf,
00024                         const vcl_vector<mfpf_pose>& poses,
00025                         const mfpf_pose& pose);
00026 
00027 //:  Sort responses and return list of non-overlapping responses
00028 //  If max_n>0 then return at most max_n
00029 void mfpf_prune_and_sort_overlaps(mfpf_point_finder& pf,
00030                          vcl_vector<mfpf_pose>& poses,
00031                          vcl_vector<double>& fits,
00032                          unsigned max_n=0);
00033 
00034 
00035 #endif // mfpf_prune_overlaps_h_
00036