Splotowe przetwarzanie obrazów z interfejsem okienkowym Tk

Transkrypt

Splotowe przetwarzanie obrazów z interfejsem okienkowym Tk
Splotowe przetwarzanie obrazów z interfejsem okienkowym Tk
Zadanie do wykonania
Tematem ćwiczenia będzie opracowanie kolejnego interfejsu użytkownika dla programu pozwalającego na przetwarzanie obrazów. Jego efektem będzie zastąpienie skryptu uruchomieniowego Tcl
lub skryptu napisanego w Bourne shellu przez skrypt okienkowy Tk. Nowy skrypt będzie współpracował z utworzoną na potrzeby poprzedniego ćwiczenia wersją programu w pascalu.
Program ma pozwalać użytkownikowi na:
1. wybór pliku wejściowego zawierającego obraz przeznaczony do obróbki,
2. wybór pliku wyjściowego na którym będzie zapisywany efekt działania programu,
3. wykonanie operacji na obrazie zgodnie z możliwościami prezentowanymi przez program pascalowy (w szczególności umożliwienie wykonania opercji splotu — więcej na stronie 2),
4. wyświetlanie obrabianych obrazów,
5. zakończenie działania programu :-).
Ponownie skrypt ma być tak skonstruowany, aby pozwalał zachować pełną funkcjonalność programu.
W rozliczeniu ćwiczenia należy dostarczyć jedynie skrypt Tk.
Uwagi ogólne
Celem tego zadania jest pobieżne zapoznanie się z możliwościami dostarczanymi przez pakiet Tk.
Pracę najlepiej rozpocząć od wypróbowania demonstracyjnego zestawu widgetów Tk znajdujących
się na diablo w katalogu /usr/local/lib/tk8.3/demos. Istniejący tam skrypt widget pozwala
próbnie uruchamiać szereg gotowych skryptów, oraz przeglądać ich treść. W razie potrzeby szczegółowego zapoznania się z działaniem poszczególnych widgetów można sięgnąć do literatury podanej
na stronie kursu, aczkolwiek dla wykonania tego zadania wystarczy opanować podstawowe widgety
tylko na podstawie przykładów. Więcej przykładów (z 15-tego rozdziału książki Matthew, Stones,
„LINUX: Programowanie”) można znaleźć w katalogu ~mucha\edu\info2\tk.
Wybór plików
W najprostszym przypadku do wskazania plików można użyć prostych pól tekstowych pozwalających na wpisanie z klawiatury ich nazw. Rozwiązania bardziej zaawansowane powinny dodatkowo
dostarczać rozwijalnych menu pozwalających na wybór nazwy pliku z listy (np. jak w przykładzie
list.tk — widget listbox, czy też bardziej rozbudowanym filebox.tcl wywoływanym z dema
widget — procedura tk_getOpenFile).
Wyświetlanie obrazów
W tym celu jak dotychczas można używać zewnętrzengo programu (xv) wywoływanego przez program pascalowy czy bezpośrednio przez tworzony interfejs, lub posłużyć się widgetami pozwalającymi na wyświetlanie obrazów w ramach aplikacji Tk (image).W ten sposób obraz może zostać
wyświetlony wewnątrz interfejsu użytkownika, można także pokusić się o udostępnianie podglądów
obrazów podczas dokonywania ich wyboru.
1
Splot
Jak wiadomo, w celu wykonania liniowej filtracji kontekstowej obrazu należy dostarczyć macierz
współczynników filtracji. W naszym przypadku jest to macierz o wymiarach 3 na 3. W związku
z tym w interfejsie należy przewidzieć możliwość podawania elementów tej macierzy w rozwijalnym lub stałym widgecie, skonstruowanym w sposób odzwierciedlający strukturę macierzy. Można
dodatkowo umożliwić wybór z listy predefiniowanych wartości macierzy dla popularnych filtrów.
2