Commit 2f95b8ad0638e6c1a77fff89cce172b3883fd5e3
1 parent
44df5778
draft implementation of janus_compare
Showing
2 changed files
with
21 additions
and
1 deletions
openbr/janus.cpp
| @@ -136,3 +136,23 @@ janus_error janus_enroll(const janus_template template_, const janus_template_id | @@ -136,3 +136,23 @@ janus_error janus_enroll(const janus_template template_, const janus_template_id | ||
| 136 | delete template_; | 136 | delete template_; |
| 137 | return JANUS_SUCCESS; | 137 | return JANUS_SUCCESS; |
| 138 | } | 138 | } |
| 139 | + | ||
| 140 | +janus_error janus_gallery_size(janus_gallery gallery, int *size) | ||
| 141 | +{ | ||
| 142 | + *size = TemplateList::fromGallery(gallery).size(); | ||
| 143 | + return JANUS_SUCCESS; | ||
| 144 | +} | ||
| 145 | + | ||
| 146 | +janus_error janus_compare(janus_gallery target, janus_gallery query, double *similarity_matrix, janus_template_id *target_ids, janus_template_id *query_ids) | ||
| 147 | +{ | ||
| 148 | + const TemplateList targets = TemplateList::fromGallery(target); | ||
| 149 | + const TemplateList queries = TemplateList::fromGallery(query); | ||
| 150 | + QScopedPointer<MatrixOutput> matrix(MatrixOutput::make(targets.files(), queries.files())); | ||
| 151 | + distance->compare(targets, queries, matrix.data()); | ||
| 152 | + const QVector<janus_template_id> targetIds = File::get<janus_template_id,File>(matrix->targetFiles, "TEMPLATE_ID").toVector(); | ||
| 153 | + const QVector<janus_template_id> queryIds = File::get<janus_template_id,File>(matrix->queryFiles, "TEMPLATE_ID").toVector(); | ||
| 154 | + memcpy(similarity_matrix, matrix->data.data, matrix->data.rows * matrix->data.cols * sizeof(double)); | ||
| 155 | + memcpy(target_ids, targetIds.data(), targetIds.size() * sizeof(janus_template_id)); | ||
| 156 | + memcpy(query_ids, queryIds.data(), queryIds.size() * sizeof(janus_template_id)); | ||
| 157 | + return JANUS_SUCCESS; | ||
| 158 | +} |