Podstawy biometrii 2013/2014

Podobne dokumenty
WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

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

Matlab Składnia + podstawy programowania

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Wprowadzenie do środowiska

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Matlab Składnia + podstawy programowania

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Matlab MATrix LABoratory Mathworks Inc.

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

1 Programowanie w matlabie - skrypty i funkcje

Zanim zaczniemy GNU Octave

Wstęp do Programowania Lista 1

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Zakaz rozpowszechniania w sieci, tylko na użytek studentów informatyki UwB. WYKŁAD 1- Matlab

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

MATLAB - podstawy użytkowania

Wprowadzenie do środowiska MATLAB z zastosowaniami w modelowaniu i analizie danych

MATLAB Podstawowe polecenia

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie

WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19

Elementy Projektowania Inżynierskiego MATLAB Wprowadzenie.

Obliczenia w programie MATLAB

Przetwarzanie sygnałów

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Laboratorium Przetwarzania Sygnałów

ANALIZA DANYCH I PROCESÓW. Mgr inż. Paweł Wojciech Herbin

MATLAB - laboratorium nr 1 wektory i macierze

Elementy metod numerycznych - zajęcia 9

1 Podstawy c++ w pigułce.

MATLAB tworzenie własnych funkcji

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA

Wprowadzenie do systemu Scilab

PRZYKŁADOWE SKRYPTY (PROGRAMY W MATLABIE Z ROZSZERZENIEM.m): 1) OBLICZANIE WYRAŻEŃ 1:

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Wprowadzenie do pakietów MATLAB/GNU Octave

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

Metody numeryczne Laboratorium 2

Pętle iteracyjne i decyzyjne

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

Ćwiczenie 3: Wprowadzenie do programu Matlab

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Laboratorium Cyfrowego Przetwarzania Obrazów

Porównanie środowiska R z środowiskiem MatLab 7.1

Ćwiczenie 1. Wprowadzenie do programu Octave

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

Zakłócenia w układach elektroenergetycznych LABORATORIUM

Kier. MTR Programowanie w MATLABie Laboratorium. 1. Tworzenie m-plików skryptowych i uruchamianie skryptów

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Cyfrowe Przetwarzanie Obrazów i Sygnałów

1 Podstawy c++ w pigułce.

Maxima i Visual Basic w Excelu

dr inż. Tomasz Krzeszowski

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

WPROWADZENIE ŚRODOWISKO OBLICZEŃ NUMERYCZNYCH MATLAB - SIMULINK

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

1) Podstawowe obliczenia. PODSTAWY AUTOMATYKI I ROBOTYKI Laboratorium. Wykonał: Łukasz Konopacki Sala 125. Grupa: poniedziałek/p,

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Podstawy Programowania C++

Inżynieria obrazów cyfrowych. Ćwiczenie 1. Środowisko MATLAB + Image Processing Toolbox - wprowadzenie

PODSTAWY AUTOMATYKI. MATLAB - instrukcje i funkcje zewnętrzne. Grafika w Matlabie. Wprowadzenie do biblioteki Control System Toolbox.

Podstawowe operacje na macierzach, operacje we/wy

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Z. Rudnicki: WPROWADZENIE DO INFORMATYKI I PROGRAMOWANIA

Instalacja Pakietu R

Podstawy Informatyki 1. Laboratorium 1

Matematyka finansowa w pakiecie Matlab

Wprowadzenie do środowiska Matlab/GNU Octave

Wprowadzenie do systemu GNU Octave. Opracowanie: Jarosław Miszczak (miszczak(at)iitis(.)gliwice(.)pl) Wersja złożona 27/05/2009

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Programowanie w języku Python. Grażyna Koba

ŚRODOWISKO MATLAB WPROWADZENIE. dr inż. Dariusz Borkowski. Podstawy informatyki. (drobne) modyfikacje: dr inż. Andrzej Wetula

Matlab, zajęcia 2. Dwukropek. Tomasz Mostowski 28.luty 2008

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Segmentacja przez detekcje brzegów

Laboratorium 3 Grafika 2D i 3D w Matlabie. Wprowadzenie do programowania

Pakiety Matematyczne - R Zestaw 2.

1 Typy i formaty danych

Podstawy MATLABA, cd.

MATLAB. Dubacki Mariusz WFAiIS 2012

1 Przygotował: mgr inż. Maciej Lasota

Pakiety matematyczne. Matematyka Stosowana. dr inż. Krzysztof Burnecki

Podstawy programowania skrót z wykładów:

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

MATrix LABoratory. A C21 delta tvx444 omega_zero. hxx J23 aaa g4534 Fx_38

Wykresy i interfejsy użytkownika

Transkrypt:

Laboratorium 5 Podstawowe operacje na obrazach w środowisku Matlab WPROWADZENIE MATLAB (MATrix LABoratory) środowisko programistyczne, zaprojektowane i rozwinięte celem udoskonalenia operacji na macierzach (w przeciwieństwie do np. JAVY, Matlab nie wymaga deklaracji rozmiaru tablicy, co znacznie zmniejsza złożoność obliczeniową projektowanych algorytmów). Toolbox zestaw funkcji, narzędzi i bibliotek zaimplementowanych w Matlabie, dobranych pod kątem określonego zastosowania. Toolbox y Matlaba wykorzystywane w przetwarzaniu obrazów: Przetwarzanie obrazów (Image Processing Toolbox) Przetwarzanie sygnałów (Signal Processing Toolbox) Sieci neuronowe (Neural Network Toolbox) Logika rozmyta (Fuzzy Logic Toolbox) Falki (Wavelet Toolbox) Pulpit Matlaba: Okno poleceń (Command Window) Przeglądarka przestrzeni roboczej (Workspace Browser) Okno aktualnej ścieżki (Current Directory Window) Okno historii poleceń (Command History Window) Okno wykresu (Figure Window) pojawia się tylko po wywołaniu

Licencja studencka: www.mathworks.com Gdzie szukać pomocy? (czyli polecenie >>helpbrowser) >>doc nazwa_funkcji %wyświetla pełną dokumentację funkcji >>help nazwa_funkcji %wyświetla podstawowe informacje o funkcji (np. o składni) >>whos pozwala podejrzeć zmienne i ich typ w pamięci. >>clear usuwa wszystkie zmienne z pamięci. Pliki Matlaba Nazwa.m (plik wykonywalny, podstawowy) Nazwa.mat (plik binarny podwójnej precyzji) do zapisu zmiennych lub całej przestrzeni roboczej Nazwa.fig (wykres) Wyrównanie a normalizacja histogramu Wyrównywanie histogramu polega upodobnieniu histogramu przetwarzanego obrazu do histogramu rozkładu równomiernego, w którym wszystkie poziomy intensywności mają jednakową częstotliwość występowania (zwiększenie kontrastu). Możliwe jest wyrównywanie lokalne. W praktyce wyrównywanie histogramu polega na przekształceniu obrazu przy pomocy odpowiedniej tablicy LUT. Operacja ta pozwala uwypuklić szczegóły obrazu, które z uwagi na niewielki kontrast są słabo widoczne. Normalizacja histogramu polega na rozciągnięciu zakresu tonalnego obrazu (jeżeli intensywność pikseli w obrazie wykorzystuje jedynie część dostępnej skali). Proces ten również może być przeprowadzony lokalnie. Detekcja krawędzi Filtry detekcji krawędzi możliwe do zaimplementowania w Matlabie Canny ego Zero crossing Laplasian of Gaussian (LoG) Prewitt a Roberts a Sobel a

Podstawy programowania w środowisku Matlab Zmienne Deklaracja zmiennych następuje po przypisaniu do zmiennej wartości. Matlab rozróżnia duże i małe litery! >> a = 5; >> A = 7; Aby wyświetlić wartość zmiennej należy wprowadzić jej oznaczenie i wcisnąć Enter. >> a a = 5 Zmienne w środowisku Matlab nie posiadają określonego typu, a więc w dowolnym momencie zmiennej liczbowej można przypisać wartość znakową. Zmienne znakowe podaje się w apostrofach. >> a = 'napis' a = napis Działania >> A + a; >> B = A - a; Średnik Umieszczony na końcu linii powoduje, że wynik operacji nie pojawi się na standardowym wyjściu. >> A + 5; >> A + 5 Ułamki Zapisuje się z kropką. >> d = 0.5; Wektory Tworzenie wektorów: >> [4 ] 4 W ten sposób można stworzyć wektor dowolnych rozmiarów: >> [ 5-6] 5-6 Aby utworzyć wektor pionowy używamy znaku transpozycji: >> [ 5 6]'

5 6 Często potrzebny jest wektor z kolejnymi liczbami całkowitymi. Tworzymy go następująco: >> [-:] - - - 0 Aby uzyskać analogiczny wektor, z tym że o odstępach różnych od należy dodać jeden parametr: >> [:.5:].0000.500.5000.7500.0000.500.5000.7500.0000 Dostęp do i-tej pozycji wektora zapewnia nam opcja: >> v().500 Tymczasowe wektory. >> 0::8 0 4 6 8 >> ans' 0 4 6 8 Operacje na wektorach >> u = [:8]; >> [8:-:]; >> u-v -7-5 - - 5 7 >> u+v 9 9 9 9 9 9 9 9 >> -*u - -4-6 -8-0 - -4-6 >> -*u+v/ 0.6667 -.6667-4.0000-6. -8.6667 -.0000 -. -5.6667

Macierze Definiowanie macierzy przebiega podobnie jak wektorów. Kolejne wiersze oddziela się średnikami. >> A = [ ; 4 5; 6 7 8] A = 4 5 6 7 8 Innym sposobem deklaracji wektora jest traktowanie go jako wektor wektorów transponowanych. >> B = [[ ]'[ 4 7]'[ 5 8]'] B = 4 5 7 8 Macierz wypełniona zerami: >> z = zeros() z = 0 0 0 0 0 0 0 0 0 >> z = zeros(,) z = 0 0 0 0 0 0 Operacje na macierzach >> A*v(:)' 6 8 46 >> A(:,:) 4 5 >> A(:,:)' 4 5 Odwracanie macierzy: >> inv(a) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND =.469447e-08..0e+05 * -.70 4.506 -.804 5.404-9.007.609 -.70 4.506 -.804

Wartości i wektory własne: >> [v,e]=eig(a) -0.656-0.7444 0.408-0.49-0.907-0.865-0.895 0.699 0.408 e = 4.0664 0 0 0 -.0664 0 0 0-0.0000 >> diag(e) 4.0664 -.0664-0.0000 Dzielenie macierzy przez wektor. >> [ 5]' 5 >> x = A\v Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 4.56506e-8 x =.0e+5 *.804 -.609.804 >> x = B\v x = - >> B*x 5 >> x = v'/b x = 4.0000 -.0000.0000 >> x*b.0000.0000 5.0000

Operacje na wektorach Utwórzmy następujące wektory: >> [ ]' >> b = [ 4 6]' b = 4 6 Możemy wykonać na nich różne operacje, jak przedstawiono poniżej. >> v+b 6 9 >> v-b - - - Ponadto w środowisku Matlab występuje operacja mnożenia lub dzielenia po komórkach, które wykonujemy poprzez użycie znaku '.*' lub odpowiednio './'. >> v.*b 8 8 >> v./b 0.5000 0.5000 0.5000 Funkcje takie jak sin, cos, log również działają na wektorach. >> sin(v) 0.845 0.909 0.4 >> log(v) 0 0.69.0986

Rysowanie wykresów Do rysowania wykresów służy funkcja plot: >> y = sin(x).*x./(+cos(x)); >> plot(x,y) >> plot(x,y,'rx'); Do oznaczania etykiet służą funkcje: >> xlabel('x'); >> ylabel(' Error '); >> title('errors for h=/6') Pętle W środowisku Matlab wystepują dwa rodzaje pętli: For: >> for j=:, j j = j = j = >> for j=:4, v(j) = j; >> v 4 While: >> h = 0.00; >> x = [0:h:]; >> y = 0*x; >> y() = ; >> i = ; >> size(x) 00 >> max(size(x)) 00 >> while(i<max(size(x))) y(i+) = y(i) + h*(x(i)-abs(y(i))); i = i + ;

>> plot(x,y,'go') >> plot(x,y) Funkcje function [x] = gausselim(a,b) % File gausselim.m % This subroutine will perform Gaussian elmination % on the matrix that you pass to it. % i.e., given A and b it can be used to find x, % Ax = b % % To run this file you will need to specify several % things: % A - matrix for the left hand side. % b - vector for the right hand side % % The routine will return the vector x. % ex: [x] = gausselim(a,b) % this will perform Gaussian elminiation to find x. % % N = max(size(a)); % Perform Gaussian Elimination for j=:n, for i=j:n, m = A(i,j-)/A(j-,j-); A(i,:) = A(i,:) - A(j-,:)*m; b(i) = b(i) - m*b(j-); % Perform back substitution x = zeros(n,); x(n) = b(n)/a(n,n); for j=n-:-:, x(j) = (b(j)-a(j,j+:n)*x(j+:n))/a(j,j); Instrukcje warunkowe Schemat budowania instrukcji warunkowych "if". if (condition statement) (matlab commands) Bardziej skomplikowany schemat z większą ilością warunków. if (condition statement) (matlab commands) elseif (condition statement) (matlab commands) elseif (condition statement)

(matlab commands) else (matlab commands) Odczytywanie plików z danymi Zapis danych z sesji do pliku. >> u = [ -4]; >> [ - 7]; >> whos >> save stuff.mat >> ls stuff.mat Koma ls służy do wypisania listy plików w bieżacym katalogu. Odczyt sesji z pliku >> clear >> whos >> load stuff.mat >> whos >> u+v Wczytywanie jedynie wybranej zmiennej z pliku. W tym przypadku u. >> clear >> whos >> load stuff.mat u >> whos Zapis sesji jako tekst. >> diary save.txt... enter commands here... >> diary Zapis i odczyt w stylu języka C. fp = fopen('laser.dat','r'); fseek(fp,pos,'bof'); tmp = fread(fp,,'double'); pos = ftell(fp); fclose(fp); Literatura. Uhl T., Kurowski P., Zastosowanie środowisk Matlab i Siglab do analizy sygnałów, Katedra Automatyki AGH, 998. Semmlov J.L., Biosignal and Biomedical Image Processing. Matlab based Applications, Marcel Decker Inc., 004. www.mathworks.com (Oficjalna strona producenta programu Matlab)

4. www.ont.com.pl (Strona Wydawnictwa Naukowo-Technicznego, wyłącznego dystrybutora MathWorks w Polsce). Webinaria i bezpłatne szkolenia. 5. Gonzalez R.C., Woods R.E., Eddins S.L. Digital Image Processing Using MATLAB, Pearson Education 004 6. Semmlov J, Biosignal and Biomedical Image Processing (Matlab Based Applications), Marcel Dekker, 004 7. Zalewski A., Matlab. Obliczenia numeryczne i ich zastosowanie, Wydawnictwo Naukom, 999 8. Brzózka J, Programowanie w Matlab, Wydawnictwo Mikom, 998