代码拉取完成,页面将自动刷新
同步操作将从 10km/feature_se 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*
* HashMapCl.cpp
*
* Created on: 2015年10月13日
* Author: guyadong
*/
#include <cassert>
#include <stdexcept>
#include "HashMapCl.h"
#ifdef CASSDK
#include "feature_compare_cas.h"
#elif defined(CUSTOM_FEACOMP)
#include "custom_feature_compare.h"
#else
#include "feature_compare.h"
#endif
namespace gdface {
HashMapCl::HashMapCl(HASH_TABLE_SIZE_TYPE initCapacity, bool isCopy, float loadFactor, size_t overBlockCapacity)
:HashMap_Abstract<MD5,code_bean,true>(initCapacity, isCopy, loadFactor, overBlockCapacity){
}
HashMapCl::HashMapCl(HASH_TABLE_SIZE_TYPE initCapacity)
:HashMapCl(initCapacity, true, 0, (size_t)(initCapacity*0.1f)){
}
/* 通过特征码比对查找表中与code相似度大于阀值threshold(>0&&<=1.0)的前rows个code_bean,
* imgMD5Filter不为nullptr时,只对code_bean.imgMD5包含在imgMD5Filter集合的对象进行特征值比对,否则全表查找
* 返回的对象中包含搜索结果
*/
TopKCodeBean HashMapCl::searchCode(const face_code &code, double threshold, size_t rows, const MD5Set *imgMD5Filter, uint32_t group)const{
if(!(rows>0&&threshold>0.0&&threshold<=1.0))
throw invalid_argument("argument not match with rows>0&&threshold>0.0&&threshold<=1.0");
TopKCodeBean top(rows, threshold);
if(nullptr==imgMD5Filter||imgMD5Filter->empty()){
for_each_break_if([&](const code_bean &node)->bool{
if ( (group & node.group) == group)
top.insert(node, feature::compare(node.code, code));
return false;
});
}else{
for_each_break_if([&](const code_bean &node)->bool{
if(imgMD5Filter->has(node.imgMD5))
if ( (group & node.group) == group)
top.insert(node, feature::compare(node.code, code));
return false;
});
}
return top;
}
HASH_TABLE_SIZE_TYPE HashMapCl::removeBeansByImgMD5(const MD5 &imgMD5){
return erase_if([&imgMD5](code_bean& bean) {return imgMD5==bean.imgMD5; });
}
std::vector<code_bean> HashMapCl::getBeansByImgMD5(const MD5 &imgMD5)const{
vector<code_bean> v;
for_each_break_if([&](const code_bean&bean){
if(imgMD5==bean.imgMD5)
v.push_back(bean);
return false;
});
return v;
}
} /* namespace gdface */
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。