我正在尝试通过添加更多功能来个性化自定义 CBIR,这些功能不仅基于颜色,而且基于纹理的特征。
我不知道我是否能很好地使用 Haralick 的功能。
我正在这样做:
我使用了 10 张图片,8 张用于不同的“纹理”,2 张用于测试:

所有 p x .jpg 都是沙子图像,所有 r x .jpg 都是正方形。测试图像是正方形,test2图像是沙子。(注意,我不想分类,我想要每个图像的值)。
好吧,当我在其余图像(r1、r2、r3、r4、p1、p2、p3、p4)上查询图像测试(正方形)时,我得到了 Haralick 的特征,例如Angular 2nd moment, Contrast, Correlation...但我找不到与方格,或与沙子无关。在这种情况下,我正在做一个欧几里德距离:
double features[15]; // I'm introducing other things as well
Haralick h;
h.CalculateCoocurrenceMatrix(features);
correlation();
for (int j = 1; j<=11; j++) {
float result = sqrt(pow(featurestest[j]-features[j],2));
if (result > f_max[j]) {
f_max[j] = result; // to normalize later
}
jsonFeatures["F"+to_string(j)] = result;
}
我的问题是:我的这种方法做得好吗?如果没有,我该怎么做?
先感谢您。
编辑:如果不清楚,我不想像我在示例中所做的那样进行分类。我使用“沙子”和“正方形”只是为了在排序时使结果更直观(例如在最终匹配功能上看到 p1 p2 r1 p3 p4 r2 p5 r3 r4 r5)。