⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matching.java

📁 动画素材图像语义标注系统:该系统实现对图片的语义标注
💻 JAVA
字号:
package cn.dxm.client;

import java.lang.Math;
import java.util.*;
import java.util.HashMap;

public class Matching
{     
       public double Match(HashMap feature1,HashMap feature2){
            double[] datac1=colorToArray(feature1);
            double[] datac2=colorToArray(feature2);
            double[] datat1=textureToArray(feature1);
            double[] datat2=textureToArray(feature2);
            return kact(datac1,datac2,datat1,datat2);
       } 

       public double[] textureToArray(HashMap feature){//得到纹理字符串
            double[] texture=new double[4];
            texture[0]=Double.parseDouble((String)feature.get("energy"));
            texture[1]=Double.parseDouble((String)feature.get("entropy"));
            texture[2]=Double.parseDouble((String)feature.get("inertia"));
            texture[3]=Double.parseDouble((String)feature.get("placidity"));
            return texture;
       }

       public double[] colorToArray(HashMap feature){//得到颜色字符串
            String s=(String)feature.get("colorhistogram");
            String[] temp=splitString(s," ");
            double[] datac=new double[256];
            for(int i=0;i<temp.length;i++)
	   { 
	      datac[i] = Double.parseDouble(temp[i]); 
	   } 
           return datac;
       }     
       
       public String[] splitString(String str,String s){
	     String[] array=str.split(s);
	     return array;
	} 
  
	public double kact(double [] datac1,double [] datac2,double [] datat1,double [] datat2)
	{
		double sumc=0;
		for(int i=0;i<datac1.length;i++)
		{
			
			sumc+=Math.abs(datac1[i]-datac2[i])*Math.abs(datac1[i]-datac2[i]);
		}
		sumc=Math.sqrt(sumc);
                while(sumc>1)
		{
			sumc=sumc /10;
		}		
                double sumt=0;
		for(int i=0;i<datat1.length;i++)
		{
			sumt+=Math.abs(datat1[i]-datat2[i])*Math.abs(datat1[i]-datat2[i]);
		}
		sumt=Math.sqrt(sumt);
                while(sumt>1)
                {
                   sumt=sumt-0.1; 
                }	
                return 0.9*sumt+0.1*sumc;	
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -