要做一个关于图片搜索并且显示的功能,所以把代码记录下来,准备以后可以参考
//判断色值的出现次数,并且储存
private static HashMap GetRGBMap(BufferedImage bufferedImage)
{
HashMap map=new HashMap();
for(int x=0;x<bufferedImage. getWidth();x++) {
for(int y=0;y<bufferedImage. getHeight();y++)
{
double RGBValue=bufferedImage.getRGB(x, y);
//如果没有保存该色值,存入
if(map. get(RGBValue)==null)
{
map.put(RGBValue, 1);
//将该色值出现次数增加一次
}
else
{
int Times=(int) map.get(RGBValue);
Times+=1;
map. put (RGBValue,Times);
}
}
}
return map;
}
//计算相似度
private static HashMap VectorNormalizing(HashMap RGBMap) {
//求图片特征向量1的模长
double ModulaLength=0;
for(Object i:RGBMap.keySet())
{
//先将所有平方相加
ModulaLength+=Math.pow((double)(int) RGBMap.get(i), 2);
}
//求平方根
ModulaLength=Math.sqrt(ModulaLength);
//将图片特征向量1标准化
for(Object i: RGBMap. keySet())
{
double a&#