我提取了诸如筛选,冲浪,边缘,颜色和纹理等功能;然后我使用MD5制作了哈希码。我试图将大量图像与查询图像进行比较和排序,并将特征哈希码的二进制级汉明距离与每次特征的直接哈希码汉明距离进行比较。不幸的是,这两个汉明距离给出了我最差的结果。每个功能哈希码。
我只想在java中解决基于哈希码的图像搜索问题。想要知道如何为每个哈希码生成按位权重。
答案 0 :(得分:1)
package methodoverloading;
import java.io.File;
public class Main {
public static void main(String[] argv) throws Exception {
File file1 = new File("f1");
File file2 = new File("f2");
File file3 = new File("f3");
int hc1 = file1.hashCode();
System.out.println(hc1);
int hc2 = file2.hashCode();
System.out.println(hc2);
int hc3 = file3.hashCode();
System.out.println(hc3);
}
}
答案 1 :(得分:1)
也许我错了,但我不认为这可能是一种有效的方法。由于散列函数将一组键映射到一组低基数的哈希值,因此非完美哈希会引起一些信息丢失。此外,如果要直接测量它们之间的距离,则必须使用有意义的散列函数。 MD5不符合您的需求......一个更有趣的事情可能是设置一个散列函数(不一定需要作为常见的散列函数),使类似的项目发生碰撞,以便“聚类”类似的数据