Dilatation
-
Hi,
ich möchte ein Programm schreiben, dass eine Dilatation durchführt. Ich hoffe ihr wisst was das ist.
Ich versuch es mal kurz zu erklären.
Ein Pixel bleibt schwarz gefärbt, falls ein Nachbarpixel schwarz ist.
Ein schwarzes Pixel wird weiß gefärbt, sobald es kein schwarzes Nachbarpixel hat.
Weiße Pixel bleiben weiß./*------------------------------------------------------------------------------ Dilatation ------------------------------------------------------------------------------*/ bool ByteImage::Dilatation(ByteImage* TMPImage){ unsigned char GWA[9] = {0}; for(unsigned int cols = 0; cols < this->_NCols; cols++){ for(unsigned int rows = 0; rows < this->_NRows; rows++){ //X** GWA[0] = this->GetPixel(rows - 1, cols - 1); GWA[3] = this->GetPixel(rows , cols - 1); GWA[6] = this->GetPixel(rows + 1, cols -1); //*X* GWA[1] = this->GetPixel(rows - 1, cols); GWA[4] = this->GetPixel(rows, cols); GWA[7] = this->GetPixel(rows + 1, cols); //**X GWA[2] = this->GetPixel(rows -1 , cols + 1); GWA[5] = this->GetPixel(rows, cols + 1); GWA[8] = this->GetPixel(rows + 1, cols + 1); this->sortFeld(GWA); if(GWA[0]==0){ printf("Pixel ist schwarz \n"); TMPImage->SetPixel(rows, cols, GWA[0]); } else printf("Pixel ist weiss \n"); } } return true; }Ich hoffe ihr könnt mir helfen, da ich grad keinen Plan hab, wie ich da vorgehen muss.
DANKE.Gruß
schmitti81P.S.: Ich bin mir auch nicht sicher ob die Textausgabe stimmt. In meinem Testbild ist das Pixel 0 schwarz. Der Rest ist weiß.
-
irgendwie hast du die frage vergessen

-
Die Frage lautet. Kann mir jemand helfen, wie ich weiter vorgehen muss, damit mein Programm eine Dilatation durchführt.
Gruß
schmitti81
-
1. Erstell dir ein zweites Array der gleichen Größe.
2. Durchlaufe jedes Element
3. Untersuche für dein Element den aktuellen Werte und die der (bis zu
Nachbarn
und setzt den neuen Wert entsprechend.
4. Gebe dein neues Array zurück.
-
Hallo,
Aber nicht zu oft durchlaufen :).
MFG winexec*
-
@Javaner: Danke. Das mit dem Werte abfragen hat bei mir irgendwie nicht geklappt. Irgendwie hat der mir keine Werte ausgegeben.
Kannst du mir nicht mal schreiben wie du das gedacht hast.
Dankeschön.Gruß
schmitti81