Morphologische Bildverarbeitung
-
Hallo zusammen!
ich muss für ein Projekt an der Uni Erosion und Dilation als morphologische Verfahren einbinden. Ich habe dazu bereits Code in einem meiner Bücher gefunden, allerdings steige ich an einer Stelle nciht ganz durch. Hier das Codebeispiel für die Erosion an Grauwertbildern:
primus
void EroGray (int ImSize, int **InIm, int **OutIm, StrTypG *StrEl)
{
int r,c,y,x,i,gv,min;for (r=0; r<ImSize; r++)
for (c=0; c<ImSize; c++) OutIm [r][c] = 0;for (r=0; r<ImSize; r++)
{
for(c=0; c<ImSize; c++)
{
min = 32767;
for (i=1; i<=StrEl[0].r; i++)
{
y = r + StrEl[i].r;
x = c + StrEl[i].c;
if (y>=0 && x>=0 && y<ImSize && x<ImSize)
{
if (gv < min) min = gv;
}
}
OutIm [r][c] = min;
}
}
}StrEl ist vom Typ StrTypG:
typedef struct StrucStrucGrey StrTypG
struct StrucStrucGrey {
int r;
int c;
int g;
};Kann mir jemand sagen, was die fettgedruckten Stellen genau machen. Da Steig ich einfach nicht durch

Vielen Dank im Voraus
-
Was genau ist dein Problem? Wenn du schon an den Grundoperationen von C (+ ist eine Addition, . und [] greifen auf die Elemente eines struct bzw. Arrays zu) scheiterst, solltest du nochmal von vorne anfangen.
-
aaalso. StrucStrucGrey ist eine struct (="Zusammenfassung von Werten") von 3 integern (ganzzahligen Werten). StrEl ist ein Zeiger auf ein solches Struct oder auf ein ganzes Array solcher structs (Array = N im Speicher hintereinanderliegende Werte). Wenn man den Indexoperator [i] auf einen Zeiger anwendet, bekommt man das Element an i-ter Stelle im Speicher nach dem Zeiger zurueck (angefangen bei 0).
StrEl[0] ist also das erste Struct, auf das der Zeiger zeigt, StrEl[i] ist das i-te struct dahinter im Speicher. StrEl[0].r ist der r-Wert der 0ten Structs, StrEl[i].c ist der c-Wert des i-ten Structs usw. Naja, und der wird dann noch zur variablen r bzw. c dazuaddiert und der Variablen y uebergeben.Einige Anmerkungen noch:
- Wenn du dich weiter mit C++ auseinandersetzen musst, solltest du wirklich mal eine algemeine Einfuehrung lesen, wie CStoll schon geschrieben hat.
- Wenn du eine Alternative zu dem Geographie(?)-Buch findest, nutze sie, denn der Code der da steht ist offenbar sau schelcht bzw. garnicht kommentiert und Variablennamen die aus einem einzelnen Buchstaben bestehen versauen das Verstaendnis noch mehr, ziemlich gedankenlos gegenueber Lesern die offenbar nicht unbedingt Programmiererfahrung vorweisen muessen.
- Wenn du dich mit Anfaengerthemen zu C++ auseinandergesetzt hast und weitere Fragen hast, bist du hier bestimmt immer willkommen, nutze dann aber auch bitte Einrueckungen und die [cpp]-code tags. Das macht die Programmfetzen fuer andere Leute lesbarer und erhoeht die Wahrscheinlichkjeit, dass sich jemand mit deinem Problem auseinandersetzt
-
Vielen Dank! Ein gutes C++-Buch ist wohl wirklich mal von Nöten
