Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki. Jarosław Piersa piersaj(at)mat.uni.torun.pl

Wielkość: px
Rozpocząć pokaz od strony:

Download "Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki. Jarosław Piersa piersaj(at)mat.uni.torun.pl"

Transkrypt

1 Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Jarosław Piersa piersaj(at)mat.uni.torun.pl Numer albumu Informatyka, rok V Wstęp do przetwarzania sygnałów i obrazów Dokumentacja projektu Toruń 2008r Abstrakt Praca poniższa jest dokumentacją do projektu wykonanego w ramach laboratorium Wstępu do przetwarzania Sygnałów i Obrazów, prowadzonego przez dr. Marię Berndt-Schreiber na WMiI UMK w roku akademickim 2007/2008 w semestrze letnim. Projekt umożliwia wykonywanie podstawowych operacji na obrazach w odcieniach szarości: filtracje przestrzenne, malowanie technikami półtonów, transformata Fouriera, dodawanie szumu, poddawanie obrazu operacjom w pakiecie Matlab. Program został zaimplementowany w Javie IcedTea w środowisku programistycznym Eclipse 3.3.

2 Spis treści 1 Opis techniczny Specyfikacja techniczna Otwieranie i zapisywanie plików Technika półtonów Filtry przestrzenne Transformata Fouriera Szum Szum Gaussowski Szum impulsowy Niestandardowe funkcje pakietu Matlab Wybór ścieżki do Matlaba Duplikowanie Pikseli Modyfikowanie skali szarości Transformacje intensywności pikseli Prezentacja wyników Technika Półtonów Filtry Przestrzenne Transformata Fouriera Szum Niestandardowe Funkcje Matlaba Listingi kodu źródłowego Przechowywanie obrazu Filtr obrazów Malowanie półtonami Transformata Fouriera Szum Matlab Bibliografia 20 1

3 Rozdział 1 Opis techniczny 1.1 Specyfikacja techniczna Program napisany został z użyciem standardowych bibliotek Javy. Informacje o obrazie przechowywane są w kasie java.awt.image.bufferedimage, ograniczonej do obrazów w odcieniach szarości. Interfejs graficzny został napisany z użyciem bibliotek Swing. Wymagania programu: Środowisko Java Runtime Environment w wersji 1.6, Procesor Pentium 2800 MHz, Pamięć operacyjna 1.25 GB, Wolna przestrzeń dyskowa ok. 10 MB (nie licząc plików graficznych), Pakiet Matlab (opcjonalnie; specyfikacja nie uwzględnia wymagań Matlaba). Standardowe biblioteki wejścia i wyjścia Javy zapewniają pełne wsparcie dla formatu graficznego GIF. Kompatybilność z innymi formatami, w szczególności JPEG i BMP, może być zależna od rodzaju środowiska Javy lub / i systemu operacyjnego. 1.2 Otwieranie i zapisywanie plików Otwieranie pliku graficznego do edycji możliwe jest poprzez wybranie polecenia Otwórz w menu Plik. Akceptowane są obrazy w formatach graficznych GIF, JPEG oraz PNG. Wszystkie operacje graficzne wykonywane są na zaznaczonym obrazie. Wybrany plik charakteryzuje się błękitnym kolorem okna. Gdy żaden obraz nie jest zaznaczony wykonanie operacji nie jest możliwe. Zapisywanie aktualnie wybranego obrazu możliwe jest poprzez polecenie Zapisz. Należy dodatkowo podać nazwę pliku i rozszerzenie, jeżeli domyślna nie jest satysfakcjonująca. 2

4 UWAGA Obsługiwane formaty zapisu mogą zależeć od zainstalowanej wersji Javy. Wskazane jest korzystanie z formatu GIF. 1.3 Technika półtonów Ten moduł programu pozwala na przybliżanie obrazu w odcieniach szarości obrazem binarnym. Działa w sposób blokowy. Każdemu blokowi o rozmiarze 3 3 w oryginalnym obrazie przyporządkowuje blok o tym samym rozmiarze w obrazie wynikowym. Nowy blok zawiera może zawierać jedynie dwie wartości 0 czyli czarny lub 255 biały. Pośrednie odcienie szarości przybliżane są poprzez odpowiednie proporcje białych i czarnych pikseli w bloku. Przybliżenie to bazuje na średniej arytmetycznej pikseli w oryginalnym obrazie. Półtony mogą być generowane w dwojaki sposób. Pierwszym jest predefiniowane ułożenie pikseli białych i czarnych w masce, zależnie od ich proporcji. W drugim pozycje pikseli są generowane losowo natomiast sumaryczne ich ilość pozostaje niezmieniona. 1.4 Filtry przestrzenne Ten moduł pozwala na poddawanie obrazów procesowi filtracji. Od strony matemetycznej proces wygląda następująco: Dany niech będzie obraz wejściowy o wymiarach m n, oznaczmy wartość piksela (x, y) na tym obrazie przez px, y, Dana nich będzie maska filtru o wymiarach nieparzystych k l, oznaczmy poprzez q(x, y) wartość maski na pozycji (x, y), x (0..k) oraz y (0..l). Niech wyjściowy obraz będzie oznaczony jako r. Jego wymiary wynoszą m n. Wartość pikseli liczona jest następująco r(x, y) = k 1 2 i= k 1 2 l 1 2 j= l 1 2 p(x + i, y + j) m(i + k 1, j + l ) Program udostępnia kilka filtrów predefiniowanych, oraz możliwość edycji własnego filtru. Na filtry własne zostały nałożone następujące ograniczenia: Wymiary maski muszą być liczbami nieparzystymi większymi od 1 oraz mniejszymi niż 25. Wartości wpisywane w pola maski muszą być całkowite. W razie konieczności należy dodatkowo ustawić wspólny dzielnik dla maski. Finalna wartość będzie ilorazem wpisanej wartości w masce i dzielnika. Dzielnik nie może być zerem. 3

5 1.5 Transformata Fouriera Ten moduł pozwala na obliczenie transformaty Fouriera dla obrazy. Zaimplementowano algorytm szybkiej transformaty Fouriera (FFT), co za tym idzie wymagane są wymiary obrazu będące potęgami liczby 2. Program automatycznie poszerza obraz do odpowiednich rozmiarów. W oknie dialogowym FFT należy wybrać następujące parametry: Typ obrazu wynikowego, dostępne są opcje: Amplituda Re(z) 2 + Im(z) 2, Faza obrazu atan( Im(z) Re(z) ), Czy obraz ma być przesunięty do środka transformaty, Czy dokonać transformacji logarytmicznej po obliczeniach, Skalar do transformacji logarytmicznej. 1.6 Szum Te opcje pozwalają na zaszumianie obrazu szumem Gaussowskim, lub szumem impulsowym Szum Gaussowski Szum Gaussowski polega na dodaniu do każdego piksela liczby losowanej niezależnie z rozkładu normalnego N(µ, σ 2 ). W oknie dialogowym należy podać parametry: µ wartość oczekiwana rozkładu, jest liczbą rzeczywistą, σ 2 wariancja rozkładu, σ 2 R > Szum impulsowy Szum impulsowy, lub tzw. szum sól i pieprz, obliczany jest w sposób niezależny dla każdego piksela według poniższych wzorów val 1 z prawdopodobieństwem p 1 P n = val 2 z prawdopodobieństwem p 2 P s z prawdopodobieństwem 1 p 1 p2 W oknie dialogowym należy podać wartości parametrów: p 1 prawdopodobieństwo zaszumienia wartością val 1, p 1 0, p 2 prawdopodobieństwo zaszumienia wartością val 2, p 1 0, p 1 + p 2 1, val 1 wartość piksela, wstawiana z prawdopodobieństwem p 1, 0 val val 2 wartość piksela, wstawiana z prawdopodobieństwem p 2, 0 val

6 1.7 Niestandardowe funkcje pakietu Matlab Program dodatkowo pozwala na wywoływanie niektórych funkcjipakietu Matlab. Pakiet Matlab musi być zainstalowany oddzielnie. Wsparcie dotyczy wyłącznie Matlaba w środowisku Windows Wybór ścieżki do Matlaba Opcja ta pozwala ręczne sprecyzownie ścieżki do pliku wykonywalnego lub skryptu startuwego Matlaba. Może się okazać niezbędna w sytuacji gdy Matlab nie jest dostępny w domyślnym katalogu, bądź występuje pod inną niż domyślna nazwą. W oknie dialogowym należy wybrać plik wykonywalny: matlab.bat w systemie windows lub matlab na Linuxie Duplikowanie Pikseli Ten skrypt pozwala na zwiększanie rozmiaru obrazu poprzez duplikowanie pikseli. Wymaga sprecyzowania dwóch parametrów m, n N. Odpowiadają one za skalowanie obrazu w poziomie i w pionie odpowiednio Modyfikowanie skali szarości Opcje te zmieniają zakrez skali szarości danego oprazu. Dostępne są opcje: full8 zakres ośmiobitowy dający 256 kolorów, full16 zakres 16-bitowy daje kolorów, minmax zakres dobrany przez użytkownika, powoduje przeskalowanie wartości pikseli na przedział [min, max], min, man [0..1], min max Transformacje intensywności pikseli Operacje te modyfikuję poziom intensywności pikseli obrazu. następujące tryby: Dostępne są neg negatyw obrazu, nie wymaga ddakowych parametrów. log transformacja logrytmiczna obrazu, wymaga parametru skalującego wynik, gamma transformacja gamma (lub korekcja gamma), wymaga jednego parametru odpowiedzialnego za wynikowy kontrast, stretch transformacja kontrastująca, wymaga dwóch parametrów. 5

7 Rozdział 2 Prezentacja wyników 2.1 Technika Półtonów Poniżej zaprezentowane są wyniki działania techniki półtonów dla różnych obrazów. Jak widać na załączonych ilustracjach choć ilość poziomów kwantyzacji została zredukowana do dwóch obraz nadal jest czytelny. Technika półtonów predefiniowanych wydaje się dawać obraz płytszy i w mniejszej ilości odcieni, ale też znacznie bardziej regularny. Gdy półtony były generowane losowo, obraz zyskiwał delikatniejszy światłocień. Jednocześnie sprawia wrażenie silnie zaszumionego nieregularnym rozkładem pikseli. Aby uzyskać optymalne wrażenie należy oddalić się na pewną odległość. Może to nie być widoczne na zamieszczonych obrazach, ale obraz otrzymany pierwszą z metod jest znacznie bardziej podatny na efekt Moire przy skalowaniu. 2.2 Filtry Przestrzenne Poniżej zostaną przedstawione efekty działania niektórych filtrów na wybranych obrazach. Filtr Gaussowski ma właściwości rozmywające. Zaprezentowane są od lewej: obraz oryginalny, po przefiltrowaniu jednokrotnym, po przefiltrowaniu trzykrotnym. Można zaobserwować postępujące rozmycie obrazu. Widać że wyraźnie zostały wzmocnione krawędzie: pionowe dla filtru Sobela Y i poziome dla filtru X. Co jednak ciekawe filtr omija krawędzie gdy ciemniejszy obszar znajduje się powyżej (w przypadku filtru X) lub na lewo (filtr Y) od krawędzi. W edytorze filtrów dodatkowo zdefiniowano filtr Laplace a, a następnie poddano obraz filtracji. Jak widać wychwycone zostały wszystkie krawędzie, zarówno poziome jak i pionowe. Z drugiej jednak strony są one znacznie cieńsze, 6

8 (a) Obraz zawierający kolejne wartości szarości, ten sam obraz malowany techniką półtonów, tenże obraz malowany techniką półtonów losowych. (b) Plik poltony1.jpg. Od lewej: Obraz oryginalny, obraz malowany techniką półtonów. (c) Plik poltony1.jpg. półtonów losowych. malowany techniką Rysunek 2.1: Malowanie techniką półtonów dla obrazu prerenderowanago i pliku Lena.jpg. 7

9 Rysunek 2.2: Plik text.jpg. Obraz oryginalny, obraz po jednokrotnym zastosowaniu filtru Gaussa, po trzykrotnym przefiltrowaniu. przez co mniej widoczne. Przemnożenie wynikowego obrazu przez 2 znacznie poprawiło kontrast. 2.3 Transformata Fouriera Poniżej zostały zaprezentowane wyniki działania FFT dla obrazu testpat1.jpg. Wymiary pliku wynoszą Zamieszczone są zarówno amplituda jak i faza, w wersjach bez przesunięć do środka transformaty oraz z nimi, i dodatkowo po logarytmowaniu z różnymi skalarami (rysunek 2.4). 2.4 Szum Rysunki prezentują działanie szumów dodanych do pliku circuit.jpg. Zastosowane szumy: gaussowski(0, 200), gaussowski(0, 400), impulsowy(0.05, 0, 0.05, 255), impulsowy(0.05, 0, 0.00, 255), impulsowy(0.00, 0, 0.05, 255). Widoczna jest wyraźna strata jakości, ale widać również że typy szumów nie są do siebie podobne. 2.5 Niestandardowe Funkcje Matlaba Ponizej zostaly przedstawione wyniki działania funkcji matlabowskich dla obrazu Leny (lena.jpg). Zamieszczone zostały negatyw, transformacje logarytmiczne i gamma, moduł stretch oraz konwersja skali szarości minmax. 8

10 (a) Plik oryginalny. (b) Po zaaplikowaniu filtrów Sobela X i Y. (c) Po zaaplikowaniu filtru Laplace a w edytorze filtrów oraz dodatkowo po przemnożeniu wartości pikseli przez 2. Rysunek 2.3: Plik tyre.jpg poddawany różnym filtrom. 9

11 (a) Obraz oryginalny. (b) Obraz amplitudy. (c) Obraz amplitudy po przesunięciu do środka transformaty (d) Obraz amplitudy po przesunięciu i transformacji logarytmicznej z parametrem 11. (e) Obraz amplitudy po przesunięciu i transformacji logarytmicznej z parametrem 33. (f) Obraz amplitudy po przesunięciu i transformacji logarytmicznej z parametrem 66. (g) Obraz fazy po transformacji logarytmicznej z parameciu i logarytmowaniu z para- (h) Obraz fazy po przesuniętrem 100. metrem 100. Rysunek 2.4: FFT dla pliku testpat1.jpg 10

12 (a) Obraz oryginalny. (b) Obraz z szumem gaussowskim µ = 0, σ 2 = 200. (c) Obraz z szumem gaussowskim µ = 0, σ 2 = 400. (d) Obraz z szumem impulsowym p 1 = 0.05, p 2 = 0.05, val 1 = 0, val 2 = 255. (e) Obraz z szumem impulsowym p 1 = 0.05, p 2 = 0.00, val 1 = 0, val 2 = 255. Rysunek 2.5: Szum dla pliku circuit.jpg (f) Obraz z szumem impulsowym p 1 = 0.00, p 2 = 0.05, val 1 = 0, val 2 =

13 (a) Obraz oryginalny. (b) Obraz po duplikacji pikseli m = n = 2. (c) Obraz po zmianie skali (d) Obraz po zmianie skali (e) Obraz w negatywie (intransbis.m) szarości min = 0, max = 0.5 szarości min = 0.25, max = (gscale.m) (gscale.m). (f) Obraz po operacji logarytmowania ze skalarem równym γ = 0.2 (intransbis.m). m = 0.2, e = 0.5 (intrans- (g) Obraz po korekcji gamma (h) Obraz po operacji stretch 10 (intransbis.m). bis.m). Rysunek 2.6: Niestandardowe funkcje Matlaba dla obrazu Leny 12

14 Rozdział 3 Listingi kodu źródłowego 3.1 Przechowywanie obrazu Obrazy w programie są przechowywane w klasie GrayImage.java. Wewnętrznie dane są przechowywane w java.awt.image.bufferedimage jednakże ograniczono dostęp do niech dostęp. Możliwe jest jedynie podawanie wartości pikseli które są odcieniami szarości (tj. mają równe składowe R, G i B). public class GrayImage { protected BufferedImage bi = null; public int getpixel(int x, int y){ int width = bi.getwidth(); int height = bi.getheight(); if (x>=0 && x< width && y>=0 && y< height){ int r = getred(bi.getrgb(x, y)); int g = getred(bi.getrgb(x, y)); int b = getred(bi.getrgb(x, y)); return (r+g+b) /3; } // if return 0; } // getpixel(int, int) public void setpixel(int x, int y, int val){ int width = bi.getwidth(); int height = bi.getheight(); val = val < 0? 0 : val; val = val > 255? 255 : val; if (x>=0 && x< width && y>=0 && y< height){ bi.setrgb(x, y, val + 256*val + 256^2*val + 256^3*255); } // if } // setpixel(int, int, int) (...) } // class 13

15 3.2 Filtr obrazów Klasa ImageFilter.java impementuje operację filtrowania obrazu. Po ustaleniu maski filtru i podaniu obrazu wejściowego tworzony jest nowy obraz o identycznych wymiarach, do którego zapisywane są wartości pikseli po przefitrowaniu. private float [][] maska = (...); public GrayImage filtrujobraz(grayimage im){ GrayImage ret = new GrayImage(im.getWidth(), im.getheight()); ret.setnazwa( im.getnazwa()); for (int i=0; i< im.getwidth(); i++) for (int j=0; j<im.getheight(); j++){ int val = filtrujsasiedztwo(im, i, j); ret.setpixel(i, j, val); } // for j return ret; } // filtrujobraz(gi) private int filtrujsasiedztwo(grayimage im, int x, int y){ float suma = 0; int m = (maska.length -1 ) /2; int n = (maska[0].length -1 ) /2; for (int i=-m; i<=+m; i++) for (int j=-n; j<=+n; j++) suma += im.getpixel(x+i, y+j) * maska[i+m][j+n]; int ret = (int) suma; ret = ret<0? 0 : ret; ret = ret>255? 255 : ret; return ret; } //filtrujsasiadztwo(gi, int, int) 3.3 Malowanie półtonami Klasa Poltony.java impementuje malowanie obrazów technikami półtonów. Ustalono odgórnie wielkość bloku na 3 3. Dla każdego takiego bloku w źródłowym rysunku liczona jest średnia arytmetyczna poziomów szarości pikseli i przyporządkowywany jest odpowiadający blok pikseli (wyłącznie białych i czarnych) do wynikowego obrazu. public static GrayImage przetwozobraz(grayimage im){ int x = im.getwidth() + (3 - im.getwidth() %3); int y = im.getheight() + (3 - im.getheight() %3); GrayImage ret = new GrayImage(x, y); 14

16 for (int i=0; i< ret.getwidth(); i+=3){ for (int j=0; j<ret.getheight(); j+=3){ int srednia = obliczsredniazmaski3x3(im, i, j); int val = skalujbarwe(srednia); rysujpolton(ret, i, j, val); } // for j } // for i return ret; } // przetworzobraz private static void rysujpoltonlosowy(grayimage im, int startx, int starty, int val ){ val = val>=10? 9 : val; val = val<= 0? 0 : val; int[][] tab = generujlosowamaske(val); // tab = przypiszpredediniownamaske(val); // dla półtonów predefiniowanych for (int i=0; i<3; i++) for (int j=0; j<3; j++) im.setpixel(startx+i, starty + j, tab[i][j]); } // rysujpolton private static int[][] generujlosowamaske(int val){ int reszta = val <5? val :9 - val; int kolor = val<5? 255 : 0; int tlo = val<5? 0 : 255; int[][] maska = new int[3][3]; for (int i=0; i<3; i++) for (int j=0; j<3; j++) maska[i][j] = tlo; while (reszta>0){ int x = r.nextint(3); int y = r.nextint(3); if (maska[x][y] == tlo){ maska[x][y] = kolor; reszta --; } } // while return maska; } // generujlosowamaske() 15

17 3.4 Transformata Fouriera FFT na obrazach została zaimplementowana w klasie TransformataFouriera.java, jednakże, sama operacja FFT, znajduje się w Wielomian.java. Klasa TransformataFouriera.java jest interfejsem tłumaczącym zapis obrazu do postaci, na której możliwe jest wykonanie FFT i tłumaczącym wyniki z powrotem do formy graficznej. Odpowiada również za obliczenia amplirudy i fazy z wielomianu zespolinego. Właściwe obliczenia znajdują się w Wielomian.java. Jest to fragment kodu pisany na potrzeby innego projektu, jednakże po niewielkich modyfikacjach znakomicie sprawdza się również tu. Dodatkowo wykonuje operacje transformacji logarytmicznej, przed zapisaniem obrazu do bufora java.awt.bufferedimage. Klasa Wielomian operuje na liczbach zespolonych, ich implementacja znajduje się w klasie C.java. public static Wielomian FFT(int n, Wielomian f, Vector<C> omega){ Wielomian ret = null; if (n==1){ ret = new Wielomian(0); ret.setwspolczynnik(0, f.getwspolczynnik(0)); return ret; } // if // f = a(x^2) + x * b(x^2) // a[k] = f[2k] k=0..n/2 // b[k] = f[2k+1] k=0..n/2 Wielomian a = new Wielomian(n/2-1); for (int i = 0; i<n/2; i++) a.setwspolczynnik(i, f.getwspolczynnik(2*i)); Vector<C> va = new Vector<C>(); for (int i=0; i<(n/2)-1; i++) va.add( (C)omega.elementAt(2*i+1)); Wielomian b = new Wielomian(n/2-1); for (int i = 0; i<n/2; i++) b.setwspolczynnik(i, f.getwspolczynnik(2*i+1)); Wielomian alfa = FFT(n/2, a, va); Wielomian beta = FFT(n/2, b, va); Wielomian gamma = new Wielomian(n-1); // gamma[i] = alfa[i] + w^i * beta[i]; // gamma[i+n/2] = alfa[i] - w^i * beta[i]; for (int i=0; i< n/2; i++){ C c = C.plus( alfa.getwspolczynnik(i), C.mult((C)omega.elementAt(i), beta.getwspolczynnik(i))); gamma.setwspolczynnik(i, c); c = C.minus( alfa.getwspolczynnik(i), C.mult((C)omega.elementAt(i), beta.getwspolczynnik(i))); 16

18 gamma.setwspolczynnik( i+n/2, c); } // for i return gamma; } // FFT 3.5 Szum Za dodawanie szumu do obrazu odpowiedzialne są klasy SzumGaussowski.java oraz SzumImpulsowy.java. Wykorzystano generator liczb pseudolosowych ze standardoeych bibiotek Javy java.utils.random. Zaszumianie pikseli następuje niezależnie od siebie. Wartość pikseli po zaszumieniu jest przybliżana do najbliższej dopuszczalnej wartości dla pikseli tj liczby całkowitej z przedziału [0..255]. Implementacja Szumu Gaussowskiego. public class SzumGaussowski { private static Random r = new Random(); public static GrayImage dodajszum(grayimage im, double mu, double sigmakw){ GrayImage ret = new GrayImage(im.getWidth(), im.getheight()); double sigma = Math.sqrt(sigmaKw); for (int i=0; i<im.getwidth(); i++){ for (int j=0; j< im.getheight(); j++){ double val = im.getpixel(i, j); val += r.nextgaussian() * sigma + mu; ret.setpixel(i, j, (int)val); } // for j } // for i return ret; } // dodajszum() } // class Implementacja sziumu Impulsowego. public class SzumImpulsowy { private static Random r = new Random(); public static GrayImage dodajszum(grayimage im, double p1, int val1, double p2,int val2){ GrayImage ret = new GrayImage(im.getWidth(), im.getheight()); for (int i=0; i<im.getwidth(); i++){ for (int j=0; j< im.getheight(); j++){ double val = im.getpixel(i, j); val = losujwartoscpola((int)val, val1, p1, val2, p2); ret.setpixel(i, j, (int)val); } // for j } // for i 17

19 return ret; } // dodajszum private static int losujwartoscpola(int val0, int val1, double p1, int val2, double p2){ double d = r.nextdouble(); if (0 < d && d < p1){ return val1; } else if (p1<d && d < p1 +p2) { return val2; } else /* p1+p2 <= d <=1 */ { return val0; } // if.. else } // losujwartoscpolapozaszumieniu() } //class 3.6 Matlab Poddawanie oprazów operacjom Matlaba zaimplementowane zostało w klasie WpsoMainWindow.java. Okna dialogowe pozwalają na wybór parametrów polecenia. Operacja jest wykonywana na kopii obrazu, która zostaje skonwertowana automatycznie do formatu gif, oraz zapisana pod nazwą zawierającą losowy łańcuch. Po zakończeniu programu pliki tymczasowe są usuwane. Wywołanie matlaba następuje w poniższy sposób. public void wykonajmatlabgscale(string parametry){ GrayImage giold = ((FrameGrayImage) desktoppane.getselectedframe()).getgi(); String sciezka = giold.getnazwa() + Random.nextInt() + ".gif"; sciezka = (new File(sciezka)).getAbsolutePath(); GrayImage gitmp = new GrayImage(giold.getBI()); zapisz(gitmp.getbi(), sciezka); new File(sciezka).deleteOnExit(); String bierzacyfolder = new File("./matlab").getAbsolutePath(); String skrypt = "\"cd " + bierzacyfolder +";"; skrypt += "I = imread( " + sciezka + " );"; skrypt += "I2 = gscale(i, " +parametry+ " );"; skrypt += "imshow(i2);\""; wykonajskryptmatlabem(skrypt); } // wykonajmatlabgscale() private void wykonajskryptmatlabem(string skrypt){ if ((new File(matlabSciezka)).exists() == false ){ JOptionPane.showMessageDialog(...); 18

20 return; } // if try { Runtime.getRuntime().exec(matlabSciezka +" -nodesktop"+ "-nojvm -r " + skrypt); } catch (IOException ex){ JOptionPane.showMessageDialog(...); System.err.format("%s\n", ex); } // try.. catch } // wykonajskrypt 19

21 Bibliografia [1] Notatki z wykładu WPSO. [2] Ryszard Paweł Kostecki, W miarę krótki i praktyczny kurs L A TEX-a w π e minut. [3] Java TM 2 Platform Standard Edition 5.0 API Specification, strona www: (http://java.sun.com/j2se/1.5.0/docs/api/index.html) 20

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT

KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT Temat: Zaimplementować system kryptografii wizualnej http://www.cacr.math.uwaterloo.ca/~dstinson/visual.html Autor: Tomasz Mitręga NSMW Grupa 1 Sekcja 2 1. Temat projektu

Bardziej szczegółowo

Raport. Bartosz Paprzycki xed@mat.umk.pl UMK 2009/2010

Raport. Bartosz Paprzycki xed@mat.umk.pl UMK 2009/2010 Raport Bartosz Paprzycki xed@mat.umk.pl UMK 2009/2010 1. Wykrywanie krawędzi 1.0. Obraz oryginalny 1. 1.1. Sobel. Parametry: domyślne. 1.2. Prewitt. Parametry: domyślne. 1.3. Roberts. Parametry: domyślne.

Bardziej szczegółowo

Zastosowanie Informatyki w Medycynie

Zastosowanie Informatyki w Medycynie Zastosowanie Informatyki w Medycynie Dokumentacja projektu wykrywanie bicia serca z sygnału EKG. (wykrywanie załamka R) Prowadzący: prof. dr hab. inż. Marek Kurzyoski Grupa: Jakub Snelewski 163802, Jacek

Bardziej szczegółowo

Java Platform Micro Edition

Java Platform Micro Edition Java Platform Micro Edition Instalacja środowiska programistycznego Java Platform Micro Edition Software Development Kit 3.0 for Windows z lokalizacji http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp-139759.html

Bardziej szczegółowo

GIMP Grafika rastrowa (Ćwiczenia cz. 2)

GIMP Grafika rastrowa (Ćwiczenia cz. 2) Zjazd 1 GIMP Grafika rastrowa (Ćwiczenia cz. 2) Zaznaczenia Aby zacząć profesjonalnie rysować w programie GIMP należy opanować tematykę zaznaczeń. Zaznaczenia (inaczej maski) służą do zaznaczania obszarów

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

1 Moduł Modbus ASCII/RTU 3

1 Moduł Modbus ASCII/RTU 3 Spis treści 1 Moduł Modbus ASCII/RTU 3 1.1 Konfigurowanie Modułu Modbus ASCII/RTU............. 3 1.1.1 Lista elementów Modułu Modbus ASCII/RTU......... 3 1.1.2 Konfiguracja Modułu Modbus ASCII/RTU...........

Bardziej szczegółowo

Programowanie w Javie

Programowanie w Javie Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student

Bardziej szczegółowo

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wyższa Szkoła Informatyki Stosowanej i Zarządzania Wyższa Szkoła Informatyki Stosowanej i Zarządzania Grupa ID308, Zespół 11 PRZETWARZANIE OBRAZÓW Sprawozdanie z ćwiczeń Ćwiczenie 6 Temat: Operacje sąsiedztwa wyostrzanie obrazu Wykonali: 1. Mikołaj Janeczek

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab Zygmunt Wróbel i Robert Koprowski Praktyka przetwarzania obrazów w programie Matlab EXIT 2004 Wstęp 7 CZĘŚĆ I 9 OBRAZ ORAZ JEGO DYSKRETNA STRUKTURA 9 1. Obraz w programie Matlab 11 1.1. Reprezentacja obrazu

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

EDYCJA TEKSTU MS WORDPAD

EDYCJA TEKSTU MS WORDPAD EDYCJA TEKSTU MS WORDPAD EDYCJA TEKSTU - MS WORDPAD WordPad (ryc. 1 ang. miejsce na słowa) to bardzo przydatny program do edycji i pisania tekstów, który dodatkowo dostępny jest w każdym systemie z rodziny

Bardziej szczegółowo

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS PROBLEMY TECHNICZNE Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS Jeżeli stwierdziłeś występowanie błędów lub problemów podczas pracy z programem DYSONANS możesz skorzystać

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Animacje cz. 2. Rysujemy koło zębate

Animacje cz. 2. Rysujemy koło zębate Animacje cz. 2 1. Do wykonania poniższej animacji będziemy potrzebować dodatkowego desenia. Znajduje się on w folderze z instrukcją, żeby program Gimp mógł z niego skorzystać musimy wskazać mu ścieżkę

Bardziej szczegółowo

1 Moduł Modbus ASCII/RTU

1 Moduł Modbus ASCII/RTU 1 Moduł Modbus ASCII/RTU Moduł Modbus ASCII/RTU daje użytkownikowi Systemu Vision możliwość komunikacji z urządzeniami za pomocą protokołu Modbus. Moduł jest konfigurowalny w taki sposób, aby umożliwiał

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Instrukcja obsługi programu PowRek

Instrukcja obsługi programu PowRek Instrukcja obsługi programu PowRek środa, 21 grudnia 2011 Spis treści Przeznaczenie programu... 4 Prezentacja programu... 5 Okno główne programu... 5 Opis poszczególnych elementów ekranu... 5 Nowy projekt...

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka + Plan wykładu Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie 2 Wprowadzenie Po co obrabiamy zdjęcia Obrazy wektorowe i rastrowe Wielkość i rozdzielczość obrazu Formaty graficzne

Bardziej szczegółowo

Systemy multimedialne 2015

Systemy multimedialne 2015 Systemy multimedialne 2015 Nazwa nowej warstwy nie ma znaczenia pod względem funkcjonalnym. Warto jednak ją nadać, łatwiej możemy się wtedy poruszać po bardziej rozbudowanym projekcie. Domyślny rozmiar

Bardziej szczegółowo

Bezpieczne uruchamianie apletów wg

Bezpieczne uruchamianie apletów wg Bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/security1.2/ Zabezpieczenia przed uruchamianiem apletów na pisanych przez nieznanych autorów 1) ograniczenie możliwości odczytywania,

Bardziej szczegółowo

VinCent Administrator

VinCent Administrator VinCent Administrator Moduł Zarządzania podatnikami Krótka instrukcja obsługi ver. 1.01 Zielona Góra, grudzień 2005 1. Przeznaczenie programu Program VinCent Administrator przeznaczony jest dla administratorów

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Programowanie 3 - Funkcje, pliki i klasy

Programowanie 3 - Funkcje, pliki i klasy Instytut Informatyki Uniwersytetu Śląskiego Laborki funkcja; parametry funkcji; typ zwracany; typ void; funkcje bez parametrów; napis.length() - jako przykład funkcji. Zadania funkcja dodająca dwie liczby;

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Javadoc Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka Wprowadzenie do Javadoc Treść prezentacji: http://students.mimuw.edu.pl/~as219669/javadoc.pdf Zadania: http://students.mimuw.edu.pl/~as219669/zadanie.rar

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Expo Composer. www.doittechnology.pl 1. Garncarska 5 70-377 Szczecin tel.: +48 91 404 09 24 e-mail: info@doittechnology.pl. Dokumentacja użytkownika

Expo Composer. www.doittechnology.pl 1. Garncarska 5 70-377 Szczecin tel.: +48 91 404 09 24 e-mail: info@doittechnology.pl. Dokumentacja użytkownika Expo Composer Dokumentacja użytkownika Wersja 1.0 www.doittechnology.pl 1 SPIS TREŚCI 1. O PROGRAMIE... 3 Wstęp... 3 Wymagania systemowe... 3 Licencjonowanie... 3 2. PIERWSZE KROKI Z Expo Composer... 4

Bardziej szczegółowo

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji. 1 Moduł Modbus TCP Moduł Modbus TCP daje użytkownikowi Systemu Vision możliwość zapisu oraz odczytu rejestrów urządzeń, które obsługują protokół Modbus TCP. Zapewnia on odwzorowanie rejestrów urządzeń

Bardziej szczegółowo

Pokaz slajdów na stronie internetowej

Pokaz slajdów na stronie internetowej Pokaz slajdów na stronie internetowej... 1 Podpisy pod zdjęciami... 3 Publikacja pokazu slajdów w Internecie... 4 Generator strony Uczelni... 4 Funkcje dla zaawansowanych użytkowników... 5 Zmiana kolorów

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

oraz kilka uwag o cyfrowej rejestracji obrazów

oraz kilka uwag o cyfrowej rejestracji obrazów oraz kilka uwag o cyfrowej rejestracji obrazów Matryca CCD i filtry Bayera Matryca CCD i filtry Bayera Demozaikowanie Metody demozaikowania Tradycyjne metody interpolacyjne (nienajlepsze efekty) Variable

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

Podstawy OpenCL część 2

Podstawy OpenCL część 2 Podstawy OpenCL część 2 1. Napisz program dokonujący mnożenia dwóch macierzy w wersji sekwencyjnej oraz OpenCL. Porównaj czasy działania obu wersji dla różnych wielkości macierzy, np. 16 16, 128 128, 1024

Bardziej szczegółowo

1. Przypisy, indeks i spisy.

1. Przypisy, indeks i spisy. 1. Przypisy, indeks i spisy. (Wstaw Odwołanie Przypis dolny - ) (Wstaw Odwołanie Indeks i spisy - ) Przypisy dolne i końcowe w drukowanych dokumentach umożliwiają umieszczanie w dokumencie objaśnień, komentarzy

Bardziej szczegółowo

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Platforma.NET. Laboratorium nr 1 Podstawy języka C# Platforma.NET Laboratorium nr 1 Podstawy języka C# Ćwiczenie 1 1. Utwórz nowy projekt a. Z menu File wybierz New/Project b. W oknie dialogowym New Project określ następujące właściwości: typu projektu:

Bardziej szczegółowo

TECHNIKI MULTIMEDIALNE LABORATORIUM GIMP: Projektowanie tła

TECHNIKI MULTIMEDIALNE LABORATORIUM GIMP: Projektowanie tła TECHNIKI MULTIMEDIALNE LABORATORIUM GIMP: Projektowanie tła 1. Cel ćwiczenia Celem ćwiczenia jest nabycie umiejętności tworzenia tła poprzez wykorzystanie funkcji dostępnych w programie GIMP. 2. Wiadomości

Bardziej szczegółowo

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki. Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy

Bardziej szczegółowo

Oprogramowanie. DMS Lite. Podstawowa instrukcja obsługi

Oprogramowanie. DMS Lite. Podstawowa instrukcja obsługi Oprogramowanie DMS Lite Podstawowa instrukcja obsługi 1 Spis treści 1. Informacje wstępne 3 2. Wymagania sprzętowe/systemowe 4 3. Instalacja 5 4. Uruchomienie 6 5. Podstawowa konfiguracja 7 6. Wyświetlanie

Bardziej szczegółowo

Programowanie, algorytmy i struktury danych

Programowanie, algorytmy i struktury danych 1/44 Programowanie, algorytmy i struktury danych materiały do wykładu: http://cez.wipb.pl/moodle/ email: m.tabedzki@pb.edu.pl strona: http://aragorn.pb.bialystok.pl/~tabedzki/ Marek Tabędzki Wymagania

Bardziej szczegółowo

Grafika komputerowa. Zajęcia IX

Grafika komputerowa. Zajęcia IX Grafika komputerowa Zajęcia IX Ćwiczenie 1 Usuwanie efektu czerwonych oczu Celem ćwiczenia jest usunięcie efektu czerwonych oczu u osób występujących na zdjęciu tak, aby plik wynikowy wyglądał jak wzor_1.jpg

Bardziej szczegółowo

/** Program demonstrujący działanie klasy GregorianCalendar import java.util.*; public class TestKalendarza // zbuduj d i zainicjalizuj z aktualną datą GregorianCalendar d = new GregorianCalendar(); int

Bardziej szczegółowo

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

Bardziej szczegółowo

Laboratorium 8 ( Android -pierwsza aplikacja)

Laboratorium 8 ( Android -pierwsza aplikacja) Dr Mirosław Łątka Informatyka dla medycyny Jesień 2012 Laboratorium 8 ( Android -pierwsza aplikacja) Naszym celem jest stworzenie aplikacji, która wyświetla zdjęcie Alberta Einsteina. Jeden z przycisków

Bardziej szczegółowo

1.Wstęp. 2.Generowanie systemu w EDK

1.Wstęp. 2.Generowanie systemu w EDK 1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).

Bardziej szczegółowo

Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie progresywne (Adam 7)

Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie progresywne (Adam 7) mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 5, strona 1. PNG (PORTABLE NETWORK GRAPHICS) Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie

Bardziej szczegółowo

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM) ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM) LABORATORIUM 5 - LOKALIZACJA OBIEKTÓW METODĄ HISTOGRAMU KOLORU 1. WYBÓR LOKALIZOWANEGO OBIEKTU Pierwszy etap laboratorium polega na wybraniu lokalizowanego obiektu.

Bardziej szczegółowo

Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007

Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007 Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007 opracowanie: mgr Monika Pskit 1. Rozpoczęcie pracy z programem Microsoft PowerPoint 2007. 2. Umieszczanie tekstów i obrazów na slajdach.

Bardziej szczegółowo

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

System imed24 Instrukcja Moduł Analizy i raporty

System imed24 Instrukcja Moduł Analizy i raporty System imed24 Instrukcja Moduł Analizy i raporty Instrukcja obowiązująca do wersji 1.8.0 Spis treści 1. Moduł Analizy i Raporty... 3 1.1. Okno główne modułu Analizy i raporty... 3 1.1.1. Lista szablonów

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

Wykrywanie twarzy na zdjęciach przy pomocy kaskad Wykrywanie twarzy na zdjęciach przy pomocy kaskad Analiza i przetwarzanie obrazów Sebastian Lipnicki Informatyka Stosowana,WFIIS Spis treści 1. Wstęp... 3 2. Struktura i funkcjonalnośd... 4 3. Wyniki...

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Temat: Organizacja skoroszytów i arkuszy

Temat: Organizacja skoroszytów i arkuszy Temat: Organizacja skoroszytów i arkuszy Podstawowe informacje o skoroszycie Excel jest najczęściej wykorzystywany do tworzenia skoroszytów. Skoroszyt jest zbiorem informacji, które są przechowywane w

Bardziej szczegółowo

Instalacja programu:

Instalacja programu: Instrukcja programu Konwerter Lido Aktualizacja instrukcji : 2012/03/25 INSTALACJA PROGRAMU:... 1 OKNO PROGRAMU OPIS... 3 DODANIE MODUŁÓW KONWERSJI... 3 DODANIE LICENCJI... 5 DODANIE FIRMY... 7 DODAWANIE

Bardziej szczegółowo

Filtracja w domenie przestrzeni

Filtracja w domenie przestrzeni 1 Filtracja Filtracja w domenie przestrzeni Filtracja liniowa jest procesem splotu (konwolucji) obrazu z maską (filtrem). Dla dwuwymiarowej i dyskretnej funkcji filtracja dana jest wzorem: L2(m, n) = (w

Bardziej szczegółowo

1. Pobieranie i instalacja FotoSendera

1. Pobieranie i instalacja FotoSendera Jak zamówić zdjęcia przez FotoSender? Spis treści: 1. Pobieranie i instalacja FotoSendera 2. Logowanie 3. Opis okna programu 4. Tworzenie i wysyłanie zlecenia Krok 1: Wybór zdjęć Krok 2: Podsumowanie zlecenia

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

AUTOVIEW 2010. Katalog sylwetek pojazdów. Instrukcja instalacji i wykorzystania w programach Cyborg Idea. C.A.R. Crash Analyse Ratschbacher GmbH

AUTOVIEW 2010. Katalog sylwetek pojazdów. Instrukcja instalacji i wykorzystania w programach Cyborg Idea. C.A.R. Crash Analyse Ratschbacher GmbH Katalog sylwetek pojazdów C.A.R. Crash Analyse Ratschbacher GmbH AUTOVIEW 2010 Instrukcja instalacji i wykorzystania w programach Cyborg Idea Copyright 2007-2010 Cyborg Idea s.c. 2 Spis treści 1. Instalacja

Bardziej szczegółowo

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka + Plan wykładu Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie 2 Po co obrabiamy zdjęcia Poprawa jasności, kontrastu, kolorów itp. Zdjęcie wykonano w niesprzyjających warunkach (złe

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

Diagnostyka obrazowa

Diagnostyka obrazowa Diagnostyka obrazowa Ćwiczenie pierwsze Zapoznanie ze środowiskiem przetwarzania obrazu ImageJ 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie uczestników kursu Diagnostyka obrazowa ze środowiskiem przetwarzania

Bardziej szczegółowo

Maskowanie i selekcja

Maskowanie i selekcja Maskowanie i selekcja Maska prostokątna Grafika bitmapowa - Corel PHOTO-PAINT Pozwala definiować prostokątne obszary edytowalne. Kiedy chcemy wykonać operacje nie na całym obrazku, lecz na jego części,

Bardziej szczegółowo

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego 2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego produktu. 23 czerwca 2014 Spis treści 3 Spis treści...5

Bardziej szczegółowo

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego 1 SKRYPTY Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego z = 1 y + 1+ ( x + 2) 3 x 2 + x sin y y + 1 2 dla danych wartości x = 12.5 i y = 9.87. Zadanie to można rozwiązać: wpisując dane i wzór wyrażenia

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Audacity jest darmowym edytorem audio

Audacity jest darmowym edytorem audio Audacity jest darmowym edytorem audio Umożliwia on: nagrywanie i odtwarzanie, importowanie i eksportowanie plików w formatach MP3, WAV, AIFF, Ogg Vorbis i inne. edycję dźwięków z wykorzystaniem wycinania,

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

Metaliczny button z deseniem.

Metaliczny button z deseniem. Metaliczny button z deseniem. Tutorial w programie GIMP Niniejszy tutorial jest wyłączną własnością Doroty Ciesielskiej Zapraszam na moją stronę http://www.direktorek03.wm studio.pl oraz http://www.porady.wm

Bardziej szczegółowo

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project JUNG Java Universal Network/Graph Framework JUNG jest to biblioteka służąca do modelowania, analizy i wizualizacji danych reprezentowanych w postaci grafów lub sieci. Architektura JUNGa wspiera różnorodność

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki

Bardziej szczegółowo

Przetwarzanie obrazów wykład 2

Przetwarzanie obrazów wykład 2 Przetwarzanie obrazów wykład 2 Adam Wojciechowski Wykład opracowany na podstawie Komputerowa analiza i przetwarzanie obrazów R. Tadeusiewicz, P. Korohoda Etapy obróbki pozyskanego obrazu Obróbka wstępna

Bardziej szczegółowo

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Menu Plik w Edytorze symboli i Edytorze widoku aparatów Menu Plik w Edytorze symboli i Edytorze widoku aparatów Informacje ogólne Symbol jest przedstawieniem graficznym aparatu na schemacie. Oto przykład przekaźnika: Widok aparatu jest przedstawieniem graficznym

Bardziej szczegółowo

Laboratorium Programowania Kart Elektronicznych

Laboratorium Programowania Kart Elektronicznych Laboratorium Programowania Kart Elektronicznych Programowanie JavaCard Marek Gosławski Przygotowanie do zajęć dokumentacja JavaCard i GlobalPlatform środowisko programistyczne karta JavaCard Potrzebne

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo