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 | 136 | delete template_; |
| 137 | 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 | +} | ... | ... |