嗨,我对图像检索完全不熟悉,而且我目前正在实施一项功能,以便从数据库中检索图像,该图像最能匹配图像。我通过jfeaturelib库选择了两个描述符,这两个是颜色直方图和Mpeg7Edege描述符。 对于RGB颜色直方图,我在这个论坛上发现,如果你想要比较其中两个你只需要做每个点的欧几里德距离的平均值
double dist(vector<double> *histogram1, vector<double> *histogram2) {
double result = 0.0;
for (vector<double>::iterator val1=histogram1->begin(), val2=histogram2->begin();
val1<histogram1->end();
val1++, val2++) {
result += (*val1 - *val2) * (*val1 - *val2);
}
result = sqrt(result);
return result;
}
这也适用于Mpeg7Edge直方图吗?我还想知道这个直方图是否总是返回与图像大小无关的相同数量的特征,因为我已经尝试了两个图像,并且在两种情况下它都返回160个特征。
答案 0 :(得分:0)
很抱歉,作为JFeatureLib的作者,我没有在这里查看过问题(仅在邮件列表中)。 当然,你可以在这些向量上使用euclidean dist。对于更高维度的向量(10+或20+),您可能需要考虑cosine dist,因为它通常会提供更好的结果。但这可能只是在您的应用程序中测试。 是的,直方图应始终产生相同数量的尺寸。