| 70 | typename image_scanner_type_ |
| 71 | > |
| 72 | class object_detector |
| 73 | { |
| 74 | public: |
| 75 | typedef image_scanner_type_ image_scanner_type; |
| 76 | typedef typename image_scanner_type::feature_vector_type feature_vector_type; |
| 77 | |
| 78 | object_detector ( |
| 79 | ); |
| 80 | |
| 81 | object_detector ( |
| 82 | const object_detector& item |
| 83 | ); |
| 84 | |
| 85 | object_detector ( |
| 86 | const image_scanner_type& scanner_, |
| 87 | const test_box_overlap& overlap_tester_, |
| 88 | const feature_vector_type& w_ |
| 89 | ); |
| 90 | |
| 91 | object_detector ( |
| 92 | const image_scanner_type& scanner_, |
| 93 | const test_box_overlap& overlap_tester_, |
| 94 | const std::vector<feature_vector_type>& w_ |
| 95 | ); |
| 96 | |
| 97 | explicit object_detector ( |
| 98 | const std::vector<object_detector>& detectors |
| 99 | ); |
| 100 | |
| 101 | unsigned long num_detectors ( |
| 102 | ) const { return w.size(); } |
| 103 | |
| 104 | const feature_vector_type& get_w ( |
| 105 | unsigned long idx = 0 |
| 106 | ) const { return w[idx].w; } |
| 107 | |
| 108 | const processed_weight_vector<image_scanner_type>& get_processed_w ( |
| 109 | unsigned long idx = 0 |
| 110 | ) const { return w[idx]; } |
| 111 | |
| 112 | const test_box_overlap& get_overlap_tester ( |
| 113 | ) const; |
| 114 | |
| 115 | const image_scanner_type& get_scanner ( |
| 116 | ) const; |
| 117 | |
| 118 | object_detector& operator= ( |
| 119 | const object_detector& item |
| 120 | ); |
| 121 | |
| 122 | template < |
| 123 | typename image_type |
| 124 | > |
| 125 | std::vector<rectangle> operator() ( |
| 126 | const image_type& img, |
| 127 | double adjust_threshold = 0 |
| 128 | ); |
| 129 | |