Obrazowanie:Obrazowanie Medyczne/ImageJ cwiczenia: Różnice pomiędzy wersjami

Z Brain-wiki
Linia 8: Linia 8:
 
[[Plik:Fantom1.png]]
 
[[Plik:Fantom1.png]]
  
W tym celu  
+
W tym celu
 
# utwórz nowy obraz: File->New->Image i podaj jego rozmiary 128 x 128 punktów.
 
# utwórz nowy obraz: File->New->Image i podaj jego rozmiary 128 x 128 punktów.
# wejdź do okna Process->Math->Macro i wpisz w linijce: '''v=128*sin(2*PI/32*x)+128'''. Jak widzisz takie funkcje jak sinus lub taką wielkość jak PI są w programie predefiniowane.
+
# wejdź do okna Process->Math->Macro i wpisz w linijce: '''v=128*sin(2*PI/32*x)+128'''. Jak widzisz takie funkcje jak sinus lub taką wielkość jak PI są w programie predefiniowane.(np. potęgę trzecią osiąga się funkcją pow(x,3), a pierwiastek sqrt(x) itp.)
 
# zapisz obraz we własnym katalogu
 
# zapisz obraz we własnym katalogu
  
Linia 17: Linia 17:
 
# utworzyć fantom o symetrii kołowej, na przykład taki: [[Plik:Fantom2.png]]
 
# utworzyć fantom o symetrii kołowej, na przykład taki: [[Plik:Fantom2.png]]
 
# utworzyć fantom o zmiennej częstości, na przykład taki:[[Plik:Fantom3.png]]
 
# utworzyć fantom o zmiennej częstości, na przykład taki:[[Plik:Fantom3.png]]
 +
 +
Aby utworzyć fantom zawierający funkcję schodkową (a nie sinusoidalną) proponuję wykonać własne makro.
 +
# wybierz Plugins->New->Macro
 +
# skopiuj poniższy skrypt
 +
# uruchom makro w okienku edytora: Macros->Run macro (ctrl+R)
 +
 +
//to jest komentarz. Poniżej znajduje się zawartość makra tworzacego fantom z funkcją schodkową
 +
imax=512;
 +
jmax=512;
 +
T=32;
 +
newImage ("rozdzielczosc", "8-bit black", imax, jmax, 1);
 +
for (i=0; i<imax; i++)
 +
  for (j=0; j<jmax; j++) {
 +
    if (i%T<T/2)
 +
      setPixel(i, j, 255);
 +
    else
 +
      setPixel(i, j, 0);
 +
  }
 +
 +
 +
Jeśli chcesz obejrzeć profil jakiejś części fantomu, możesz zaznaczyć obszar i wybrać Analyze->Plot profile (ctr+K). Jest możliwe obejrzeć też profil wzdłuż linii, jeśli taką się zaznaczy na obrazie.
 +
 +
# Zaobserwuj jak wpłynie na rozdzielczość dodanie szumu do każdego z tych fantomów: Process->Noise->Add noise.
 +
# Wykonaj analizę FFT fantomów: Process->FFT->FFT. Pomnóż uzyskany obraz przez funkcję, która usunie niskie częstości lub wysokie częstości i wykonaj odwrotną transformację Fouriera: Process->FFT->Inverse FFT.
 +
Np. pomnożenie przez dwuwymiarową funkcję Gaussa można wykonać tak:
 +
'''v=exp(-(pow(64-x,2)+pow(64-y,2))/100)'''
 +
 +
Filtrowanie za pomocą splotu
 +
# utwórz nowy obraz o wymiarach 15 x 15
 +
# wypełnij go funkcją Gaussa, np. '''v=exp(-(pow(7-x,2)+pow(7-y,2))/10)*255'''
 +
# zamień obraz na liczby: Image->Transform->Image to results
 +
# skopiuj całą tabelę (zaznacz w opcjach okienka wyników Results->Options, by nie kopiować nagłówków kolumn i wierszy)
 +
# wróć do obrazka z fantomem
 +
# wybierz Process->Filters->Convolve i wklej tam zawartość swojego Gaussa

Wersja z 10:28, 21 paź 2016

Ćwiczenia z Obrazowania medycznego z wykorzystaniem programu ImageJ

Otwórz program ImageJ.

1. Rozdzielczość

Wykonaj fantom do analizy rozdzielczości. Na przykład taki: Fantom1.png

W tym celu

  1. utwórz nowy obraz: File->New->Image i podaj jego rozmiary 128 x 128 punktów.
  2. wejdź do okna Process->Math->Macro i wpisz w linijce: v=128*sin(2*PI/32*x)+128. Jak widzisz takie funkcje jak sinus lub taką wielkość jak PI są w programie predefiniowane.(np. potęgę trzecią osiąga się funkcją pow(x,3), a pierwiastek sqrt(x) itp.)
  3. zapisz obraz we własnym katalogu

Zastanów się jak

  1. zmienić częstość przestrzenną fantomu. Stwórz i zapisz dwa inne fantomy o większej częstości.
  2. utworzyć fantom o symetrii kołowej, na przykład taki: Fantom2.png
  3. utworzyć fantom o zmiennej częstości, na przykład taki:Fantom3.png

Aby utworzyć fantom zawierający funkcję schodkową (a nie sinusoidalną) proponuję wykonać własne makro.

  1. wybierz Plugins->New->Macro
  2. skopiuj poniższy skrypt
  3. uruchom makro w okienku edytora: Macros->Run macro (ctrl+R)

//to jest komentarz. Poniżej znajduje się zawartość makra tworzacego fantom z funkcją schodkową imax=512; jmax=512; T=32; newImage ("rozdzielczosc", "8-bit black", imax, jmax, 1); for (i=0; i<imax; i++)

 for (j=0; j<jmax; j++) {
   if (i%T<T/2)
     setPixel(i, j, 255);
   else
     setPixel(i, j, 0);
 }


Jeśli chcesz obejrzeć profil jakiejś części fantomu, możesz zaznaczyć obszar i wybrać Analyze->Plot profile (ctr+K). Jest możliwe obejrzeć też profil wzdłuż linii, jeśli taką się zaznaczy na obrazie.

  1. Zaobserwuj jak wpłynie na rozdzielczość dodanie szumu do każdego z tych fantomów: Process->Noise->Add noise.
  2. Wykonaj analizę FFT fantomów: Process->FFT->FFT. Pomnóż uzyskany obraz przez funkcję, która usunie niskie częstości lub wysokie częstości i wykonaj odwrotną transformację Fouriera: Process->FFT->Inverse FFT.

Np. pomnożenie przez dwuwymiarową funkcję Gaussa można wykonać tak: v=exp(-(pow(64-x,2)+pow(64-y,2))/100)

Filtrowanie za pomocą splotu

  1. utwórz nowy obraz o wymiarach 15 x 15
  2. wypełnij go funkcją Gaussa, np. v=exp(-(pow(7-x,2)+pow(7-y,2))/10)*255
  3. zamień obraz na liczby: Image->Transform->Image to results
  4. skopiuj całą tabelę (zaznacz w opcjach okienka wyników Results->Options, by nie kopiować nagłówków kolumn i wierszy)
  5. wróć do obrazka z fantomem
  6. wybierz Process->Filters->Convolve i wklej tam zawartość swojego Gaussa