Obrazowanie:Obrazowanie Medyczne/ImageJ cwiczenia: Różnice pomiędzy wersjami
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:
W tym celu
- 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.(np. potęgę trzecią osiąga się funkcją pow(x,3), a pierwiastek sqrt(x) itp.)
- zapisz obraz we własnym katalogu
Zastanów się jak
- zmienić częstość przestrzenną fantomu. Stwórz i zapisz dwa inne fantomy o większej częstości.
- utworzyć fantom o symetrii kołowej, na przykład taki:
- utworzyć fantom o zmiennej częstości, na przykład taki:
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