public override void Run() { Dilatazione d = new Dilatazione(InputImage, StructuringElement, Foreground); Erosione er = new Erosione(d.Execute(), StructuringElement, Foreground); Result = er.Execute(); }
public override void Run() { //F - (F erosione S) Result = new Image <byte>(InputImage.Width, InputImage.Height); //faccio prima l'erosione Erosione er = new Erosione(InputImage, StructuringElement, Foreground); Image <byte> tmp = er.Execute(); //faccio sottrazione for (int i = 0; i < Result.PixelCount; i++) { Result[i] = (byte)(InputImage[i] - tmp[i]); } }
public override void Run() { if (StructuringElement2 == null) { MessageBox.Show("NULL"); return; } //(F erosione S1) intersezione (F_complementare erosione S2) //faccio 2 immagini, poi l'intersezione //output Result = new Image <byte>(InputImage.Width, InputImage.Height); //prima immagine Erosione er1 = new Erosione(InputImage, StructuringElement, Foreground); Image <byte> tmp1 = er1.Execute(); //calcolo F_complementare Image <byte> complementare = new Image <byte>(InputImage.Width, InputImage.Height); for (int i = 0; i < complementare.PixelCount; i++) { if (InputImage[i] == Foreground) { complementare[i] = (byte)(255 - Foreground); } else { complementare[i] = Foreground; } } //seconda immagine Erosione er2 = new Erosione(complementare, StructuringElement2, Foreground); Image <byte> tmp2 = er2.Execute(); //trovo l'intersezione fra le 2 immagini for (int i = 0; i < Result.PixelCount; i++) { if (tmp1[i] == Foreground && tmp2[i] == Foreground) { Result[i] = Foreground; } } }