Commit 8de955668d904cf9adba5e62bcb871b75e263706
1 parent
c9cf519c
introduced Template::readUniversalTemplate and Template::freeUniversalTemplate
Showing
2 changed files
with
19 additions
and
0 deletions
openbr/openbr_plugin.cpp
| @@ -439,6 +439,23 @@ Template Template::fromUniversalTemplate(const br_utemplate &ut) | @@ -439,6 +439,23 @@ Template Template::fromUniversalTemplate(const br_utemplate &ut) | ||
| 439 | return Template(File(map), m); | 439 | return Template(File(map), m); |
| 440 | } | 440 | } |
| 441 | 441 | ||
| 442 | +br_utemplate Template::readUniversalTemplate(QFile &file) | ||
| 443 | +{ | ||
| 444 | + const size_t headerSize = sizeof(br_universal_template); | ||
| 445 | + br_universal_template *t = (br_universal_template*) malloc(headerSize); | ||
| 446 | + file.read((char*) t, headerSize); | ||
| 447 | + | ||
| 448 | + const size_t dataSize = t->mdSize + t->fvSize; | ||
| 449 | + t = (br_universal_template*) realloc(t, headerSize + dataSize); | ||
| 450 | + file.read((char*) &t->data, dataSize); | ||
| 451 | + return t; | ||
| 452 | +} | ||
| 453 | + | ||
| 454 | +void Template::freeUniversalTemplate(br_const_utemplate t) | ||
| 455 | +{ | ||
| 456 | + free((void*) t); | ||
| 457 | +} | ||
| 458 | + | ||
| 442 | QDataStream &br::operator<<(QDataStream &stream, const Template &t) | 459 | QDataStream &br::operator<<(QDataStream &stream, const Template &t) |
| 443 | { | 460 | { |
| 444 | return stream << static_cast<const QList<cv::Mat>&>(t) << t.file; | 461 | return stream << static_cast<const QList<cv::Mat>&>(t) << t.file; |
openbr/openbr_plugin.h
| @@ -296,6 +296,8 @@ struct Template : public QList<cv::Mat> | @@ -296,6 +296,8 @@ struct Template : public QList<cv::Mat> | ||
| 296 | 296 | ||
| 297 | static br_utemplate toUniversalTemplate(const Template &t); | 297 | static br_utemplate toUniversalTemplate(const Template &t); |
| 298 | static Template fromUniversalTemplate(const br_utemplate &ut); | 298 | static Template fromUniversalTemplate(const br_utemplate &ut); |
| 299 | + static br_utemplate readUniversalTemplate(QFile &file); | ||
| 300 | + static void freeUniversalTemplate(br_const_utemplate t); | ||
| 299 | }; | 301 | }; |
| 300 | 302 | ||
| 301 | BR_EXPORT QDataStream &operator<<(QDataStream &stream, const Template &t); | 303 | BR_EXPORT QDataStream &operator<<(QDataStream &stream, const Template &t); |