Image Filter
A software for image filtering

Intro...

Strona ta poświęcona jest programowi ImageFilter, opisowi jego potencjalnych możliwości, sposobów wykorzystania i zarazem stanowi jego (przynajmniej częściową) dokumentację.

Czym jest ImageFilter

Najkrócej mówiąc, ImageFilter jest narzędziem. Tak jak program graficzny jest narzędziem w rękach grafika a zintegrowane środowisko programistyczne jest narzędziem dla programisty tak ImageFilter jest narzędziem filtrowania danych wizualnych (obrazów statycznych i ruchomych) dla... No właśnie, dla kogo? Trudno powiedzieć dla kogo. Można jednak powiedzieć kiedy program ten może okazać się przydatny. Otóż widzimy jego zastosowanie wszędzie tam, gdzie pozyskany obraz przedstawia informację w sposób trudny do zinterpretowania lub niewystarczająco czytelny, np. dane medyczne. Program skierowany jest do specyficznej grupy ludzi: do tych co mają potrzebę przetwarzania obrazu ale nie wiedzą jak to zrobić w sposób prosty i nie wymagający zbyt dużo wiedzy w tym temacie.

Najważniejszymi cechami programu są

  1. Minimalna wiedza z zakresu przetwarzania obrazu. Choć zakładamy, że profil docelowego odbiorcy to przede wszystkim osoba mająca potrzebę przetwarzania obrazu ale nie wiedząca jak to zrobić w sposób prosty i nie wymagający zbyt dużo wiedzy w tym temacie, to jednak minimalna znajomość tematu jest niezbędna. Minimalna, czyli wiedza o tym jakie operacje na obrazie można wykonać i jaki jest ich efekt (czyli np. obraz można rozjaśnić czy przekształcić z odcieni szarości do kolorowego).
  2. Łatwość obsługi. Zasadniczym założeniem było umożliwienie użytkownikowi szybkiego i swobodnego łączenia filtrów w łatwy i intuicyjny sposób. Filtry reprezentowane są na ekranie w postaci ,,pudełek'', które można swobodnie przemieszczać i łączyć ze sobą. Struktura połączeń odzwierciedla przepływ sygnałów w tworzonym systemie. Dzięki temu osoba nie mająca styczności z przetwarzaniem obrazu może w kilka sekund ,,wyklikać'' system, który np. będzie wykrywał najgrubsze krawędzie (zobacz przykład)
  3. Elastyczność. Struktura aplikacji powinna pozwalać na łatwe dodawanie nowej funkcjonalności. Dlatego jako podstawowy element działania systemu wybrano filtr. Każdy filtr ma określoną maksymalną liczbę wejść i wyjść oraz przyjmuje na wejście oraz udostępnia na wyjściu obraz statyczny (lub jedną klatkę obrazu dynamicznego tj. filmu). W żaden sposób natomiast nie jest narzucone co filtr może/nie może robić i w jaki sposób. Dzięki temu założeniu nie ma problemu aby dodać np. filtr obsługujący niestandardowe źródło lub wykonujący filtrowanie według specyficznych kryteriów i założeń. Wszystkie filtry są od siebie niezależne a z aplikacją komunikują się przez wspólny interfejs komunikacyjny.
  4. Równoległość i rozproszenie działania. System projektowany jest w taki sposób aby, jeśli to tylko możliwe, przetwarzanie obrazu odbywało się równolegle. Dzięki temu można wykorzystać potencjał maszyn wielordzeniowych oraz wieloprocesorowych i znacznie przyspieszyć działanie systemu. Dodatkowo istnieje mechanizm pozwalający na komunikację ze zdalnymi maszynami oferującymi określone usługi filtrowania. Dzięki temu złożony proces filtrowania może odbywać się (jako usługa) w innym, szybszym systemie.
  5. Prosty interfejs komunikacyjny. Zasadniczy mechanizm komunikacji pomiędzy elementamu funkcjonalnymi systemu, np. Engine (tj. część wykonawcza) i GUI (tj. interfejs użytkownika) oparty jest na prostych komunikatach tekstowych. Konsekwencją takiego wyboru jest możliwość zdalnego zarządzania pracą systemu, nawet z poziomu programu telnet. Nie ma też problemu aby filtr czy elementy wizualizacji napisane zostały w dowolnym języku programowania - jedynym wymaganiem jest możliwość utworzenia połączenia opartego o protokoły TCP/IP.
  6. Wieloplatformowość. Wieloplatformowość oznacza możliwość uruchamiania aplikacji pod kontrolą różnych systemów operacyjnych na różnych konfiguracjach sprzętowych przy jak najmniejszym nakładzie dodatkowej pracy ze strony użytkownika. Rozwiązania dedykowane mogą okazać się wydajniejsze jednak zamykają często dostęp do innych technologii jakie mogą pojawić się w przyszłości.
  7. Niewielkie ograniczenia licencyjne. Program można używać całkowicie darmowo do dowolnych celów (szczegóły licencji).

Copyright by fulmanp, 2009