Grazie candaluar,
ho seguito i tuoi suggerimenti, per cui ho creato con paint un'immagine 4x4 ed ho provato ad inserire un pò di colori in modo sparso, ho fatto stampare i valori del pixel ed alla fine ho verificato che il sort venisse calcolato, ho quindi potuto vedere che i tre array contenti i valori di RGB vengono ordinati solo che ho notato una cosa, in pratica il filtro mediano dovrebbe sostituire il valore presente al centro della maschera, dopo aver ordinato l'array, con il valore mediano dell'array, ma se provo a farmi stampare il valore mediano quando il pixel preso in considerazione è in posizione (0,0) mi viene restituito il valore in posizione
red[index]
dove
index = 1
in quanto
count = 4
sapendo che index viene calcolato
int index = (count % 2 == 0) ? count / 2 - 1 : count / 2;
l'array contente i valori di rosso, facendo sempre riferimento al pixel (0,0) è il seguente:
red vettore 0
red vettore 0
red vettore 0
red vettore 0
red vettore 0
red vettore 255
red vettore 255
red vettore 255
red vettore 255
per cui quando viene calcolato
int p = (a << 24) | (red[index] << 16) | (green[index] << 8) | blue[index];
che viene poi assegnato a
outputPixels[x + y * width] = p;
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
img.getOriginalImage().setRGB(x, y, outputPixels[x + y * width]);
}
}
In pratica non so se il tutto è corretto, potete darci un'occhiata
Grazie