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