je vous remercie wax78 pour votre réponse..
mais en effet j'ai deux tableaux de données
le premier tableau de type int, et contient les valeurs de pixels RGB
int[] pixels = image.getRGB(0,0, image.getWidth(), image.getHeight(), null, 0, image.getWidth());
j'ai un autre tableau de type double et contient les coordonnées des pixels de l'image originale après l'application d'une interpolation
1 2 3 4 5 6 7 8 9 10 11 12
| gridValues = new Double[(xNumCells) * (yNumCells)];
for (int i = 0; i < yNumCells; i++) {
for (int j = 0; j < xNumCells; j++) {
// les points dp sont les points de l'image originale avec des coordonnées de type int (j,i)
// getValue() est la fonction d'interpolation
Point dp = new Point(j,i);
int index = (i * xNumCells) + j;
double value = getValue(dp);
gridValues[index] = value;
}
} |
maintenant je dois construire et afficher une image resultat de l'interpolation, avec les coordonnées:
java.awt.geom.Point2D a = new Point2D.Double(j+gridValues[j],i+gridValues[j])
et le cast peut provoquer une perte de précision
tableau des pixels: 255 189 200 120
tab des coordonnées après interpolation: 25.6236 25.856 23.658 21.548
avec un cast on obtient les valeurs suivants
tableau des pixels: 255 189 200 120
tab des coordonnées après interpolation: 25 25 23 21
la position 25 dans le tab des coordonnées peut avoir deux valeurs 255 et 189
comment faire pour résoudre ce problème??
Partager