Verwirrung mit Submatrix

Kirby.exe

Top Contributor
Alsoo ich habe ein gegebenes Grauwert Bild (repräsentiert als int[][]) und möchte hier eine Submatrix erstellen. Für die Methode über gebe ich das Zentrum der Submatrix. Sprich z.B. int x und int y. Ich habe ein gegebenes k (welches auch geändert werden kann), welches garantiert eine ungerade Zahl ist. Somit habe ich dann eine Ergebnis Matrix k x k. Ich verstehe noch nicht ganz wie ich abhängig vom k ermitteln, wie viele Zellen links und rechts oder oben und unten von meinem Punkt (x,y) liegen.

Ich stehe gerade irgendwie auf dem Schlauch...xD
 
Beste Antwort
Das ist doch nun wirklich nicht so schwer. Wenn dein k also die Seitenlänge deiner Subregion/Submatrix angibt, und (x, y) das Zentrum der Submatrix (innerhalb des grossen Bildes/der grossen Matrix), dann:
Code:
minX = x - k/2; // <- integer Division!
maxX = x + k/2;
minY = y - k/2;
maxY = y + k/2;
Für k = 3 und (x, y) = (100, 200) ergibt sich also z.B.:
Code:
minX = 100 - 3/2 = 99; // <- integer Division!
maxX = 100 + 3/2 = 101;
minY = 200 - 3/2 = 199;
maxY = 200 + 3/2 = 201;

httpdigest

Top Contributor
Das ist doch nun wirklich nicht so schwer. Wenn dein k also die Seitenlänge deiner Subregion/Submatrix angibt, und (x, y) das Zentrum der Submatrix (innerhalb des grossen Bildes/der grossen Matrix), dann:
Code:
minX = x - k/2; // <- integer Division!
maxX = x + k/2;
minY = y - k/2;
maxY = y + k/2;
Für k = 3 und (x, y) = (100, 200) ergibt sich also z.B.:
Code:
minX = 100 - 3/2 = 99; // <- integer Division!
maxX = 100 + 3/2 = 101;
minY = 200 - 3/2 = 199;
maxY = 200 + 3/2 = 201;
 
Beste Antwort

Neue Themen


Oben