Commit 99e31d428c3b1c50134cbf598cab93f8db434ae0
1 parent
3dc36a53
added NegativeLogPlusOneDistance
Showing
1 changed file
with
34 additions
and
0 deletions
openbr/plugins/distance.cpp
| ... | ... | @@ -241,6 +241,40 @@ BR_REGISTER(Distance, HalfByteL1Distance) |
| 241 | 241 | |
| 242 | 242 | /*! |
| 243 | 243 | * \ingroup distances |
| 244 | + * \brief Returns -log(distance(a,b)+1) | |
| 245 | + * \author Josh Klontz \cite jklontz | |
| 246 | + */ | |
| 247 | +class NegativeLogPlusOneDistance : public Distance | |
| 248 | +{ | |
| 249 | + Q_OBJECT | |
| 250 | + Q_PROPERTY(br::Distance* distance READ get_distance WRITE set_distance RESET reset_distance STORED false) | |
| 251 | + BR_PROPERTY(br::Distance*, distance, NULL) | |
| 252 | + | |
| 253 | + void train(const TemplateList &src) | |
| 254 | + { | |
| 255 | + distance->train(src); | |
| 256 | + } | |
| 257 | + | |
| 258 | + float compare(const Template &a, const Template &b) const | |
| 259 | + { | |
| 260 | + return -log(distance->compare(a,b)+1); | |
| 261 | + } | |
| 262 | + | |
| 263 | + void store(QDataStream &stream) const | |
| 264 | + { | |
| 265 | + distance->store(stream); | |
| 266 | + } | |
| 267 | + | |
| 268 | + void load(QDataStream &stream) | |
| 269 | + { | |
| 270 | + distance->load(stream); | |
| 271 | + } | |
| 272 | +}; | |
| 273 | + | |
| 274 | +BR_REGISTER(Distance, NegativeLogPlusOneDistance) | |
| 275 | + | |
| 276 | +/*! | |
| 277 | + * \ingroup distances | |
| 244 | 278 | * \brief Returns \c true if the templates are identical, \c false otherwise. |
| 245 | 279 | * \author Josh Klontz \cite jklontz |
| 246 | 280 | */ | ... | ... |