Laboratorium Technik Obrazowania Medycznego
Ć
wiczenie 2: „Wprowadzenie do obsługi i programowania w systemie KS Run”
Cel ćwiczenia:
Celem ćwiczenia jest zapoznanie się ćwiczących z podstawami programowania w KS Run. W ramach ćwiczenia
należy uruchomić dwa przykładowe, dołączone do niniejszej instrukcji (MACRO_01.MCR oraz
MACRO_02.MCR), makroprogramy i przeanalizować działanie poszczególnych funkcji makroprogramów. W
uruchamianych makrach należy wpisać komentarze wyjaśniające działanie programu (komentarz to tekst
poprzedzony znakiem #).
Sprawozdanie z ćwiczenia:
-
winno zawierać wydruki zrealizowanych makr wraz z komentarzami
Program ćwiczenia:
Uwaga: Program ćwiczenia realizować w kolejności podanych poniżej punktów !
1. Uruchomić system KS Run przez kliknięcie na pulpicie ikonki „KSRUN”.
2. Sprawdzić, czy w dolnym prawym rogu pulpitu pojawi się główne okienko systemu w postaci:
Standardowego położenia tego okienka oraz okienek pomocniczych (Gallery, Display, Messages) nie należy
zmieniać. Sprawdzić, czy wciśnięto (przez kliknięcie) odpowiednie ikonki (1, 2 , 3 oraz 5 licząc od lewej).
3. Przyciski 1-12 uruchamiają programy (makra) MACRO_01.MCR do MACRO_12.MCR stworzone przez
ć
wiczących jako pliki tekstowe (bez znaków specjalnych typu znaki narodowe, tabulacje, itp.). Do
tworzenia plików makr zaleca się stosować standardowy edytor tekstowy „Notatnik” („Notepad”) systemu
MS Windows (2000, XP, Vista, 7).
4. Pliki makr (MACRO_01.MCR do MACRO_12.MCR – uwaga nazwy pisane dużymi literami!) muszą przed
uruchomieniem być zamknięte i skopiowane do kartoteki C:\KSRUN\Conf\Macros – inaczej nie będą
dostępne dla systemu KSRun.
5. Pełna dokumentacja systemu KS Run wraz z listą dostępnych standardowych funkcji zawarta jest w plikach:
KS400 User Manual Volume 1.pdf
KS400 User Manual Volume 2.pdf
KS Run User Manual .pdf
6. Oczekuje się, że przed przystąpieniem do realizacji ćwiczenia, ćwiczący zaznajomią się wcześniej we
własnym zakresie ze strukturą dokumentacji KS400 User Manual Volume 1 oraz 2 oraz z treścią
dokumentacji KS Run User Manual i treścią rozdziału 3.14 (Interpreter) podręcznika KS400 User Manual
Volume 1. Wszystkie te pliki są udostępnione na Platformie Zdalnej Edukacji lub/i na CD (do
wypożyczenia u prowadzącego ćwiczenie).
7. Uruchomić i przetestować makro 1 (MACRO_01.MCR) (ocena 2.5).
8. Uruchomić i przetestować makro 2 (MACRO_02.MCR) (ocena 3.0).
9. Zmodyfikować makro 2 tak, aby długości ramion krzyżyków oznaczających miejsca kliknięć wynosiły 15
(ocena 3.5).
10. Zmodyfikować makro 2 tak, aby na początku programu ćwiczący mógł wybierać kolor prostokąta
określającego wybrany obszar (ocena 4.0).
11. Zmodyfikować makro 2, tak aby w oknie ‘Messages’ podawać udział procentowy wybranego obszaru
obrazu (stosunek powierzchni wybranego obszaru do powierzchni całego obrazu) (ocena 4.5).
12. zmodyfikować makro 2, tak aby wybrany obszar był wyświetlany na obrazie oryginalnym w postaci
negatywu (ocena 5.0).
13. Treści makr zamieszczono poniżej.
14. Plik makroprogramu MACRO_01.MCR
MBok "Techniki Obrazowania Medycznego\n\n
Ć
wiczenie 2 cz
ęść
1"
MBok "Przykładowa procedura KSRun"
showwindow "Messages",1
showwindow "Display",1
showwindow "Gallery",1
write "@"
write
"Makro
wy
ś
wietla
wybrany
przez
U
ż
ytkownika
obraz
w
trybie
interaktywnym"
imgdelete "*"
Gclear 0
imgsetpath "C:/KSRUN/CONF/IMAGES"
MBok "Wybierz obraz do załadowania"
!imgload "SAND.TIF",1
imgdisplay 1
update
SizeX:=SizeY:=SizeZ:=0
Type:="UNDEF"
imgstatus 1,SizeX,SizeY,SizeZ,Type
write
write "Załadowany obraz ma rozmiary:"
write SizeX," x ",SizeY
write "Liczba warstw obrazu = ",SizeZ
if Type=="GREY"
write "Jest to obraz typu B/W"
else
if Type=="COLOR"
write "Jest to obraz typu RGB"
else
write "Nieznany typ obrazu"
endif
endif
stop
Plik makroprogramu MACRO_02.MCR
MBok "Techniki Obrazowania Medycznego\n\n
Ć
wiczenie 2 cz
ęść
2"
MBok "Wyznaczanie histogramu wskazanego obszaru obrazu"
showwindow "Messages",1
showwindow "Display",1
showwindow "Gallery",1
showwindow "Graphic",1
write "@"
imgdelete "*"
Gclear 0
imgsetpath "C:/KSRUN/CONF/IMAGES"
MBok "Wybierz obraz do załadowania"
!imgload "SAND.TIF",1
imgdisplay 1
update
Px:=Py:=Kx:=Ky:=0
dlx:=dly:=0
while 1
while 1
Gclear 0
MBok "Kliknij myszk
ą
lewy górny naro
ż
nik obszaru"
!Gpixel Px,Py,0
write "Współrz
ę
dne lewego górnego naro
ż
nika: (",Px,",",Py,")"
Gclear 0
Gvector Px-9,Py,Px+9,Py,14
Gvector Px-9,Py+1,Px+9,Py+1,14
Gvector Px,Py-9,Px,Py+9,14
Gvector Px+1,Py-9,Px+1,Py+9,14
MBok "Kliknij myszk
ą
prawy dolny naro
ż
nik obszaru"
!Gpixel Kx,Ky,0
write "Współrz
ę
dne prawego dolnego naro
ż
nika: (",Kx,",",Ky,")"
Gvector Kx-9,Ky,Kx+9,Ky,14
Gvector Kx-9,Ky+1,Kx+9,Ky+1,14
Gvector Kx,Ky-9,Kx,Ky+9,14
Gvector Kx+1,Ky-9,Kx+1,Ky+9,14
dlx = Kx-Px
dly = Ky-Py
if ((dlx > 0) && (dly >0)) : break
MBok "Wprowadzono niepoprawne dane"
endwhile
Gclear 0
Grectg Px,Py,dlx,dly,11,2
MByesno "Czy chcesz zmieni
ć
wybrany obszar obrazu"
if _STATUS==0 : break
endwhile
SizeX:=SizeY:=SizeZ:=0
Type:="UNDEF"
imgstatus 1,SizeX,SizeY,SizeZ,Type
imgnew 2,dlx,dly,1,Type
imgdisplay 2
update
wincopy 1,2,Px,Py,dlx,dly,0,0
imgdisplay 1
Grectg Px,Py,dlx,dly,11,2
imghisto 2,0,0,262144.000000,"Histogram wybranego fragmentu obrazu"
MBok "Je
ś
li histogram si
ę
nie wy
ś
wietli, kliknij przycisk 'Image Histogram'
na pasku programów"
MBok "Koniec przebiegu programu"
stop