public Imagen(string name, Bitmap bmp) { id = name; histColor = new HistogramaColor(bmp); histForma = new HistogramaForma(bmp); image = bmp; }
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); }
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); }