示例#1
0
 public Imagen(string name, Bitmap bmp)
 {
     id        = name;
     histColor = new HistogramaColor(bmp);
     histForma = new HistogramaForma(bmp);
     image     = bmp;
 }
示例#2
0
        public double distanciaManhattan(Imagen histograma)
        {
            HistogramaColor objetivo          = histograma.histColor;
            double          diferenciaParcial = 0;
            double          diferenciaFinal   = 0;

            for (int k = 0; k < 16; k++)
            {
                diferenciaParcial = 0;
                for (int i = 0; i < 64; i++)
                {
                    diferenciaParcial += Math.Abs(sectoresDeHistograma[k][0][i] - objetivo.sectoresDeHistograma[k][0][i]) + Math.Abs(sectoresDeHistograma[k][1][i] - objetivo.sectoresDeHistograma[k][1][i]) + Math.Abs(sectoresDeHistograma[k][2][i] - objetivo.sectoresDeHistograma[k][2][i]);
                }
                diferenciaFinal += diferenciaParcial / 6;
            }
            return(diferenciaFinal / 16);
        }
示例#3
0
        public double distanciaO(Imagen histograma)
        {
            HistogramaColor objetivo         = histograma.histColor;
            double          resultado        = 0;
            double          resultadoParcial = 0;

            for (int k = 0; k < 16; k++)
            {
                resultadoParcial = 0;
                for (int i = 0; i < 64; i++)
                {
                    resultadoParcial += Math.Pow(sectoresDeHistograma[k][0][i] - objetivo.sectoresDeHistograma[k][0][i], 2) + Math.Pow(sectoresDeHistograma[k][1][i] - objetivo.sectoresDeHistograma[k][1][i], 2) + Math.Pow(sectoresDeHistograma[k][2][i] - objetivo.sectoresDeHistograma[k][2][i], 2);
                }
                resultadoParcial = Math.Sqrt(resultadoParcial) * 100 / 3547 * 16;
                resultado       += resultadoParcial;
            }
            resultado = resultado / 16;
            return(resultado);
        }