public Image WybierzPrzekroj(Image obraz3d, int numerPrzekroju) { int numberSlices = (int)obraz3d.GetDepth(); if (numberSlices < numerPrzekroju) { return obraz3d; } else { SliceImageFilter sliceFilter = new SliceImageFilter(); sliceFilter.SetStart(new VectorInt32(new[] { 1, 1, numerPrzekroju })); sliceFilter.SetStop(new VectorInt32(new[] { 512, 512, numerPrzekroju + 1 })); var obraz2d = sliceFilter.Execute(obraz3d); sliceFilter.Dispose(); return obraz2d; } }
public Image WybierzPrzekroj(Image obraz3d, int przekrojMin, int PrzekrojMax) { int numberSlices = (int)obraz3d.GetDepth(); if (numberSlices < przekrojMin) { return(obraz3d); } else { Image obraz2d = new Image(); if (przekrojMin < PrzekrojMax) { if (PrzekrojMax - 1 > numberSlices) { PrzekrojMax = numberSlices; } SliceImageFilter sliceFilter = new SliceImageFilter(); sliceFilter.SetStart(new VectorInt32(new[] { 1, 1, przekrojMin })); sliceFilter.SetStop(new VectorInt32(new[] { 512, 512, PrzekrojMax })); obraz2d = sliceFilter.Execute(obraz3d); sliceFilter.Dispose(); } return(obraz2d); } }
private void Podglad_Click(object sender, EventArgs e) { //Bitmap obraz1 = segm.konwertujObraz(obrazWys, numberofSlice); //Form forma = new Wyswietlanie(obraz1); //forma.Show(); obraz obrazForm = new obraz((int)(obrazWys.GetDepth()), obrazWys); obrazForm.Show(); }
private void segmentacja_Click(object sender, EventArgs e) { // obraz obrazForm = new obraz((int)(obraz.GetDepth()),obraz); int ilosc_przekrojow = (int)obraz.GetDepth(); // var u = obrazForm.ShowDialog(); // numberofSlice = obrazForm.numberofSlice; obrazWys = segm.segmentujObraz(0, ilosc_przekrojow); // Bitmap og = segm.konwertujObraz(obraz, numberofSlice); this.Podglad.Enabled = true; this.Zapisz.Enabled = true; }
public Image WybierzPrzekroj(Image obraz3d, int numerPrzekroju) { int numberSlices = (int)obraz3d.GetDepth(); if (numberSlices < numerPrzekroju) { return(obraz3d); } else { SliceImageFilter sliceFilter = new SliceImageFilter(); sliceFilter.SetStart(new VectorInt32(new[] { 1, 1, numerPrzekroju })); sliceFilter.SetStop(new VectorInt32(new[] { 512, 512, numerPrzekroju + 1 })); var obraz2d = sliceFilter.Execute(obraz3d); sliceFilter.Dispose(); return(obraz2d); } }
public Image segmentujObraz(int numerPrzekroj, int numerMaxPrzekroju = 0) { try { Image image; if (numerMaxPrzekroju == 0) { image = WybierzPrzekroj(obraz, numerPrzekroj); } else { image = WybierzPrzekroj(obraz, numerPrzekroj, numerMaxPrzekroju); } itk.simple.Image imgWstepnePrzetwarzanie = this.WstepnePrzetwarzanie(image); itk.simple.Image imgSegmentowanaSledziona = this.SegmetacjaSledziony(imgWstepnePrzetwarzanie); itk.simple.Image imgNalozenieObrazow = this.NalozObrazy(image, imgSegmentowanaSledziona); itk.simple.Image obrazWysegmentowany = imgNalozenieObrazow; uint e = obraz.GetDimension(); uint j = obraz.GetWidth(); uint k = obraz.GetDepth(); uint o = obrazWysegmentowany.GetDepth(); return(obrazWysegmentowany); //zapiszObraz(obrazWysegmentowany); } catch (ArgumentNullException e) { throw new ArgumentNullException("sprawdz czy wczytales obraz"); } catch (Exception e) { //throw new Exception("blad podczas segmentacji obrazu"); throw new Exception(e.Message); } }
public Image WybierzPrzekroj(Image obraz3d, int przekrojMin, int PrzekrojMax) { int numberSlices = (int)obraz3d.GetDepth(); if (numberSlices < przekrojMin) { return obraz3d; } else { Image obraz2d = new Image(); if (przekrojMin < PrzekrojMax) { if (PrzekrojMax-1 > numberSlices) { PrzekrojMax = numberSlices; } SliceImageFilter sliceFilter = new SliceImageFilter(); sliceFilter.SetStart(new VectorInt32(new[] { 1, 1, przekrojMin })); sliceFilter.SetStop(new VectorInt32(new[] { 512, 512, PrzekrojMax })); obraz2d = sliceFilter.Execute(obraz3d); sliceFilter.Dispose(); } return obraz2d; } }