Aplikacja OPPOC (Obiektowe Procedury Przetwarzania Obrazów Cyfrowych) została napisana w języku Java. Jest ona przeznaczona do przetwarzania obrazów cyfrowych. Przetwarzanie realizowane jest poprzez operacje graficzne z takich dziedzin, jak:
Cele jakie przyświecały powstawaniu aplikacji, to:
Aplikacja funkcjonuje jako archiwum uruchomieniowe (jar), które zawiera całą strukturę aplikacji, czyli skompilowane klasy, obrazy graficzne i inne wykorzystywane pliki. Archiwum uruchomieniowe aplikacji jest złożone z pakietów, co w strukturze dyskowej oznacza, że każdy pakiet posiada własny katalog. Poza katalogami pakietów występują jeszcze inne katalogi konieczne do poprawnego funkcjonowania aplikacji. Struktura katalogów aplikacji w archiwum:
Struktura całej aplikacji została tak zaprojektowana, aby pełniła rolę platformy do prostego definiowania operacji graficznych. Technologia definiowania operacji elementarnych opiera się na zestawie klas i obiektów mających na celu ułatwienie dodawania nowych operacji służących do przetwarzania obrazów cyfrowych, ułatwienie wykorzystywania oprogramowanych operacji oraz umożliwienie tworzenia przez użytkownika operacji złożonych.
Technologia dodawania nowej operacji polega na odpowiednim zmodyfikowaniu plików oppoc*.properties oraz na dodaniu klasy, dziedziczącej po klasie Operation, do pakietu jat.oppoc.op. Oczywiście, aby dodać operację w ten sposób, należy zmodyfikować źródła aplikacji. Innym prostszym sposobem jest dodanie plug-in'a. Poniżej zawarto przykład dodania operacji Kopiuj, która przepisuje obrazy wejściowe na wyjściowe. Przykład przedstawia sposób definiowania nowej operacji graficznej w kolejnych krokach:
o.interp_nearest=Nearest neighbor o.interp_bilinear=Bilinear o.interp_bicubic=Bicubic o.interp_bicubic_2=Bicubic 2 o.Error=Operation perform error. Check parameters. o.Icon=op/operation.jpg o.Number=64 o.memText=@M of @ @M
package jat.oppoc.op; import jat.oppoc.ui.*; import java.util.*; import java.awt.image.renderable.ParameterBlock; import javax.media.jai.PlanarImage; // // Definicja klasy operacji graficznej dziedziczącej // po klasie Operation // public class Kopiuj extends Operation { // // Konstruktor klasy Kopiuj. m.in. uruchamia // konstruktor przodka // public Kopiuj() { super(UITools.getString("o65.Name")); min_in = Integer.parseInt(UITools.getString("o65.MinIn")); max_in = Integer.parseInt(UITools.getString("o65.MaxIn")); setIcon(UITools.getIcon(UITools.getString("o65.Icon"))); init(); } // // Metoda inicjuje komponenty parametryzujące operację. // Jeżeli występują komponenty, to powinny być umieszczone // na obiekcie 'panel' // private void init() { panel = new UIPanel(); } // // Metoda konieczna do implementacji. // Wektory in1 i in2 zawierają wejściowe obrazy cyfrowe. // Do wektora out należy dodawać przetworzone // obrazy wejściowe // public void run(Vector in1, Vector in2, Vector out) { for (Enumeration e = in1.elements(); e.hasMoreElements();) out.add((PlanarImage) e.nextElement()); for (Enumeration e = in2.elements(); e.hasMoreElements();) out.add((PlanarImage) e.nextElement()); } // // Metoda konieczna do implementacji. // public PlanarImage run(ParameterBlock pb) { return null; } }
o65.Name=Copy o65.Tab=Area o65.Menu=Area o65.Class=jat.oppoc.op.Kopiuj o65.Title=Copy o65.Icon=op/copy.jpg o65.MinIn=1 o65.MaxIn=0
Instalacja aplikacji polega tylko na skopiowaniu pliku oppoc.jar do wybranego katalogu na dysku. Jednak, aby aplikacja mogła być uruchamiana i używana, konieczne jest zainstalowanie maszyny wirtualnej języka Java oraz biblioteki dla operacji graficznych na stacji roboczej.
Maszynę wirtualną można zainstalować w wersji dla programistów (Java 2 SDK Standard Edition) lub dla użytkowników (Java 2 Runtime Environment - w skrócie JRE). W przypadku używania maszyny wirtualnej dla użytkowników, aplikację można uruchamiać poprzez dwukrotne kliknięcie na pliku oppoc.jar.
Bibliotekę operacji graficznych należy zainstalować w wersji przeznaczonej dla SDK lub dla JRE w zależności od instalacji maszyny wirtualnej. Najnowsze wersje pakietów instalacyjnych Javy oraz biblioteki graficznej Java Advanced Imaging (JAI) są udostępniane nieodpłatnie przez firmę Sun pod adresem http://java.sun.com/products/java-media/jai/.
Poniżej, w kolejnych krokach, jest opisana typowa instalacja wszystkich elementów dla platformy Windows. W przypadku używania innych platform (np. GNU/Linux) instalacja wygląda bardzo podobnie.Instalacja maszyny wirtualnej:
Instalacja biblioteki operacji graficznych:
c:\oppoc>java -jar oppoc.jar
Aplikacja, w prosty sposób, może być rozwijana poprzez dodawanie nowych operacji (plug-in) przez każdego z użytkowników. Do dodania nowej operacji jest potrzebny pakiet SDK Javy wraz biblioteką JAI.
Podręcznik dodawania nowej operacji, jako plug-in, jest dostępny po uruchomieniu aplikacji OPPOC: w menu "Pomoc" ("Help"), w pozycji "Plug-in".
Źródła aplikacji są umieszczone w repozytorium CVS na sourceforge.net.
Proszę o przesyłanie uwag, propozycji, błędów oraz problemów związanych z aplikacją OPPOC na adres: jacekteska@users.sourceforge.net.