Hallo,
ich habe eine Klasse PPM, in der die Daten eines PPM-Bildes in den Membervariablen gespeichert werden.
In einer anderen Klasse habe ich nun die Methode edgeDetection(PPM datei), die auf die übergebene Datei einen Laplace-Filter anwenden soll.
Hier möchte ich das Array, welches die Pixel des PPM-Objekts beinhaltet, zunächst in ein zweidimensionales Array umwandeln.
Auf die Werte in diesem Array soll über array[datei.bildhoehe][datei.bildbreite] zugegriffen werden können.
Die beiden Variablen haben die Werte datei.bildhoehe=500 und datei.bildbreite=539.
D.h., wenn ich das Array über
Ich habe natürlich geschaut, ob ich die beiden Variablen irgendwo vertauscht habe, konnte aber solch einen Fehler nicht finden.
Bitte um Hilfe.
Vielen Dank im Voraus!
ich habe eine Klasse PPM, in der die Daten eines PPM-Bildes in den Membervariablen gespeichert werden.
In einer anderen Klasse habe ich nun die Methode edgeDetection(PPM datei), die auf die übergebene Datei einen Laplace-Filter anwenden soll.
Hier möchte ich das Array, welches die Pixel des PPM-Objekts beinhaltet, zunächst in ein zweidimensionales Array umwandeln.
Auf die Werte in diesem Array soll über array[datei.bildhoehe][datei.bildbreite] zugegriffen werden können.
Die beiden Variablen haben die Werte datei.bildhoehe=500 und datei.bildbreite=539.
D.h., wenn ich das Array über
printf("pixelZweidimensional[%d][%d]: %d\n",j,k,pixelZweidimensional[j][k]);
ausgebe, sollte der größte Wert in der zweiten Indexklammer 538 betragen. Gebe ich es jedoch aus, geht es in der zweiten Klammer jeweils maximal mit 499.Ich habe natürlich geschaut, ob ich die beiden Variablen irgendwo vertauscht habe, konnte aber solch einen Fehler nicht finden.
C++:
int** pixelZweidimensional=new int*[datei.bildhoehe];
int i;
for(i = 0; i < datei.bildhoehe; i++) {
pixelZweidimensional[i] = new int[datei.bildbreite];
}
int indexPixelArray=0;
while(indexPixelArray<(datei.bildbreite*datei.bildhoehe)) {
int j;
for(j = 0; j < datei.bildhoehe; j++) {
printf("j: %d\n", j);
int k;
for(k = 0; k < datei.bildbreite; k++) {
printf("k: %d\n",k);
pixelZweidimensional[j][k] = datei.pixelArray[indexPixelArrayP3];
printf("pixelZweidimensional[%d][%d]: %d\n",j,k,pixelZweidimensional[j][k]);
indexPixelArray++;
}
}
}
Bitte um Hilfe.
Vielen Dank im Voraus!