Laboratorium Cyfrowego Przetwarzania Obrazów

Podobne dokumenty
Laboratorium Cyfrowego Przetwarzania Obrazów

Matlab Składnia + podstawy programowania

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

Elementy okna MatLab-a

Metody i analiza danych

Podstawowe operacje graficzne.

Wprowadzenie do środowiska

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

1 Programowanie w matlabie - skrypty i funkcje

Scilab - podstawy. Wersje instalacyjne programu Scilab mogą zostać pobrane ze strony

Laboratorium Przetwarzania Sygnałów

Grafika w Matlabie. Wykresy 2D

Matlab Składnia + podstawy programowania

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

Wizualizacja funkcji w programie MATLAB

Laboratorium Przetwarzania Sygnałów

Podstawowe operacje na macierzach

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

Laboratorium Cyfrowego Przetwarzania Obrazów

Po naciśnięciu przycisku Dalej pojawi się okienko jak poniżej,

Laboratorium Cyfrowego Przetwarzania Obrazów

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Operacje logiczne i struktury sterujące.

Graficzna prezentacja wyników

Laboratorium Cyfrowego Przetwarzania Obrazów

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Wprowadzenie do MS Excel

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

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

TWORZENIE WYKRESÓW (1)

Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85

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

zajęcia 2 Definiowanie wektorów:

Przetwarzanie sygnałów

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

Podstawy MATLABA, cd.

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

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

Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na r.

ARKUSZ KALKULACYJNY MICROSOFT EXCEL cz.2 Formuły i funkcje macierzowe, obliczenia na liczbach zespolonych, wykonywanie i formatowanie wykresów.

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

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010

Wprowadzenie do programu Mathcad 15 cz. 1

Matlab MATrix LABoratory Mathworks Inc.

Przykładowo, jeśli współrzędna x zmienia się od 0 do 8 co 1, a współrzędna y od 12 co 2 do 25, to punkty powinny wyglądać następująco:

Wstęp do Programowania Lista 1

Operatory arytmetyczne

SCILAB. Wprowadzenie do Scilaba:

EXCEL. Diagramy i wykresy w arkuszu lekcja numer 6. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 20

Wprowadzenie do Mathcada 1

Pętle iteracyjne i decyzyjne

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

ARKUSZ KALKULACYJNY komórka

Diagnostyka obrazowa

Obliczenia inżynierskie arkusz kalkulacyjny. Technologie informacyjne

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Ćwiczenie 3: Wprowadzenie do programu Matlab

Ćwiczenie 1. Wprowadzenie do programu Octave

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

FORMUŁY AUTOSUMOWANIE SUMA

TABELE I WYKRESY W EXCELU I ACCESSIE

MATLAB PROJEKTOWANIE GRAFICZNE. Maciej Ulman ETI 9.2. Funkcje graficzne moŝna podzielić na cztery podstawowe grupy:

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Cw.12 JAVAScript w dokumentach HTML

Wprowadzenie do MATLABa

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Ćwiczenie 1. Wprowadzenie do programu Octave

Metody i analiza danych

Podstawy Programowania C++

Ćwiczenie 1 - Arkusze kalkulacyjne

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Wykorzystanie programów komputerowych do obliczeń matematycznych

POMIARY WIDEO W PROGRAMIE COACH 5

Wykresy. Lekcja 10. Strona 1 z 11

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

4.Arkusz kalkulacyjny Calc

Ekonometria. Regresja liniowa, współczynnik zmienności, współczynnik korelacji liniowej, współczynnik korelacji wielorakiej

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

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Obliczenia iteracyjne

Wprowadzenie do Scilab: macierze

PODSTAWY INŻYNIERII SYSTEMÓW TECHNICZNYCH

Wykresy i obiekty graficzne w Matlabie

Metody numeryczne Laboratorium 2

Ćwiczenia 11 (12) (4 godziny). Wizualizacja i manipulacja w Matlabie

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Temat: Arkusze kalkulacyjne. Program Microsoft Office Excel. Podstawy

Ekonometria. Modele regresji wielorakiej - dobór zmiennych, szacowanie. Paweł Cibis pawel@cibis.pl. 1 kwietnia 2007

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Wprowadzenie do pakietów MATLAB/GNU Octave

1. Opis okna podstawowego programu TPrezenter.

Transkrypt:

Laboratorium Cyfrowego Przetwarzania Obrazów Ćwiczenie 1 Wprowadzenie do MATLAB'a Opracowali: - dr inż. Beata Leśniak-Plewińska - dr inż. Jakub Żmigrodzki Zakład Inżynierii Biomedycznej, Instytut Metrologii i Inżynierii Biomedycznej, Wydział Mechatroniki Politechniki Warszawskiej. Warszawa, 2011

1. Cel ćwiczenia. W ramach ćwiczenia studenci zapoznają się z obsługą pakietu MATLAB w zakresie niezbędnym dla potrzeb laboratorium CPOB. We wprowadzeniu do ćwiczenia opisano podstawowe polecenia środowiska, funkcje matematyczne oraz graficzne na przykładzie prostych obliczeń wykonywanych z poziomu konsoli (linii poleceń). 2. Wymagane wiadomości. Informacje zawarte w: 1. p. 3 niniejszej instrukcji, 2. wideo-demonstracji Wprowadzenie_do_MATLABa zamieszczonej wraz z niniejsza instrukcją na stronie: zib.mchtr.pw.edu.pl. 3. Wprowadzenie. Pakiet MATLAB jest środowiskiem obliczeniowym umożliwiającym przeprowadzanie złożonych obliczeń naukowych i inżynierskich oraz wizualizację ich wyników oraz zbiorów danych. Ważną cechą pakietu są specjalne biblioteki funkcji zwane przybornikami (ang. Toolboxes), których zastosowanie znacznie upraszcza i przyspiesza tworzenie własnych rozwiązań. Obraz cyfrowy to zbiór geometrycznie uporządkowanych wartości, które w ogólnym przypadku mogą się zmieniać w czasie (Równ. 1): I =F x, y, z,t (1) Obraz wczytany/załadowany do przestrzeni roboczej MATLAB'a jest reprezentowany przez macierz. Wartości elementów macierzy zalezą od typu obrazu i formatu jego zapisu. Rys. 1 przedstawia obraz monochromatyczny (zapisany w formacie bmp) i fragment reprezentującej go macierzy macierzy o wartościach z przedziału [0,255], co odpowiada 256 poziomom intensywności (szarości) w reprezentowanym obrazie. 31 41 44 41 52 91 136 112 106 125 131 34 41 46 46 66 114 138 113 106 135 153 42 44 50 57 98 138 129 108 118 163 163 48 34 53 82 125 126 124 121 148 189 110 40 44 66 116 125 117 124 134 170 150 81 45 76 97 120 115 103 118 149 178 98 53 77 103 115 99 107 104 123 166 148 59 41 Rysunek 1. Obraz i reprezentująca go macierz. Ćwiczenie 1 - Wprowadzenie do MATLAB'a 2/14

3.1 Macierz Podstawowym typem danych MATLAB'a jest macierz. Macierz definiuje się jako funkcję przyporządkowująca parze indeksów (i,j) wartość liczbową a i,j (Równ. 2). Obrazowo macierz można sobie wyobrazić jako prostokątna tablice liczb. 11 a 12 a 1n A=[a a 21 a 22 a 21 a m1 a m2 a mn] (2) Szczególnymi przypadkami macierzy są: wektor i skalar (S). Jeżeli wektor składa się z jednego wiersza, nazywany jest wektorem wierszowym (V w ), natomiast jeśli posiada jedną kolumnę wektorem kolumnowym (V k ) (Równ. 3). V w =[a 11 a 12 a 1n ],V k =[a 11 a 12 a 1n],S=[a 11] (3) 3.2 Tworzenie macierzy W MATLAB'ie istnieje wiele sposobów tworzenia macierzy. Macierze tworzy się m.in.: poprzez wyliczanie elementów, poprzez zastosowanie funkcji generujących, z innych macierzy. Aby utworzyć wektor przez wyliczanie, elementy wektora należy umieścić wewnątrz nawiasów kwadratowych, np: a = [1 2 3 4 5] Utworzony wektor jest wektorem wierszowym jego elementy zostały rozdzielone spacjami. Tworząc wektor wierszowy elementy wektora można również rozdzielić przecinkami. Polecenie: b = 1:1:5 tworzy za pomocą operatora dwukropka wektor wierszowy (identyczny jak wektor a), którego elementy maja wartości z przedziału od min=1 do max=5 zmieniające się z krokiem=1. Polecenie: c = [1; 2; 3; 4; 5] tworzy natomiast wektor kolumnowy jego elementy zostały rozdzielone średnikami. Wektor wierszowy można przekształcić w kolumnowy za pomocą operatora transpozycji ' (np. c=a'). Wykorzystując dwa powyższe sposoby rozdzielania elementów można utworzyć macierz: m = [1 2 3; 4 5 6; 7 8 9; 10 11 12], Ćwiczenie 1 - Wprowadzenie do MATLAB'a 3/14

która ilustruje wzór (4). m=[ 1 2 3 4 5 6 7 8 9 10 11 12] (4) Do tworzenia macierzy i wektorów w MATLAB'ie można również wykorzystać wiele wbudowanych funkcji, t.j.: eye(m,n) - macierz jednostkową M x N ones(m,n) - macierz M x N o elementach równych 1 zeros(m,n) - macierz M x N o elementach równych 0 rand(m,n) - macierz M x N wypełniona liczbami pseudolosowymi z przedziału <0,1> o rozkładzie jednorodnym randn(m,n) - macierz M x N wypełniona liczbami pseudolosowymi z przedziału <0,1> o rozkładzie normalnym (z wartością średnią 0 i wariancją 1) linspace(a,b,n) - wektor o n wartościach rozłożonych równomiernie pomiędzy a i b włącznie z wartościami a i b logspace(a,b,n) - wektor o n wartościach rozłożonych logarytmicznie pomiędzy a i b włącznie z wartościami a i b Kolejnym sposobem tworzenia macierzy jest wykorzystanie macierzy już istniejących w przestrzeni roboczej MATLAB'a (ang. Workspace). Ten sposób został dokładniej wyjaśniony w części praktycznej ćwiczenia. 3.3 Indeksowanie macierzy Operacje na macierzach wymagają dostępu do ich elementów. Dostęp ten uzyskuje się poprzez indeksy, stanowiące numer wiersza i/lub kolumny umieszczone wewnątrz nawiasów okrągłych. Np. aby uzyskać dostęp do elementu leżącego na przecięciu trzeciego wiersza i drugiej kolumny macierzy m opisanej wzorem (4) należy użyć polecenia: m(2,3) Można również odwoływać się do większych fragmentów macierzy. Umożliwia to operator dwukropka. Jeśli potrzebne są dane zawarte np. w drugiej kolumnie macierzy m (wzór 4), wówczas można je uzyskać za pomocą polecenia: m(:,2) Dwukropek oznacza w tym przypadku wszystkie wiersze, natomiast liczba 2 oznacza, że są to elementy z drugiej kolumny. 3.4 Operacje macierzowe i tablicowe oraz funkcje wspomagające przetwarzanie macierzy. Podstawowymi operatorami arytmetycznymi w MATLAB'ie są: +, -, * i /. W przypadku, gdy argumentami operacji są macierze, operatory te wykonują działania macierzowe (np. operator * Ćwiczenie 1 - Wprowadzenie do MATLAB'a 4/14

umożliwia mnożenie macierzy w sensie Cauchy'ego). Aby dokonać operacji mnożenia i dzielenia na odpowiadających sobie pojedynczych elementach argumentów macierzowych wymienione operatory: * i / należy poprzedzić kropką:.* i./ (operatory takie nazywamy tablicowymi). Wybrane funkcje wspomagające przetwarzanie macierzy zostały bliżej przedstawione w części praktycznej ćwiczenia. 3.5 Operacje logiczne. Jedną z klas zmiennych MATLAB'a jest klasa logical (logiczna). Operatory porównania : <, <=, >, >=, ==, i ~= umożliwiają konstrukcję wyrażeń logicznych, których wynikiem jest prawda lub fałsz. Wyrażeń logicznych używa się najczęściej w instrukcjach sterujących. W MATLAB'ie istnieją ponadto trzy podstawowe rodzaje operatorów logicznych:, &, ~ operujące na elementach macierzy oraz warunkowe operatory logiczne (ang. short-circuit) operujące na wyrażeniach skalarnych ( &&, ). Umożliwiają one podjęcie decyzji o wartości wyrażenia logicznego na podstawie jedynie pierwszego operandu (argumentu operatora) - o ile jest to możliwe. 3.6 Instrukcje sterujące Instrukcje sterujące w MATLAB'ie można podzielić na: instrukcje warunkowe, pętle, instrukcje obsługi błędów. W ćwiczeniu studenci zostaną zapoznani jedynie z przykładami dwóch pierwszych typów instrukcji warunkowych. Instrukcje warunkowe pozwalają na wybranie bloku instrukcji, który zostanie wykonany. Instrukcja if oblicza wartości wyrażenia logicznego i w zależności od uzyskanego wyniku wykonuje właściwa grupę instrukcji. Najprostsza składnia instrukcji if wygląda następująco: if wyrażenie_logiczne blok instrukcji end Jeżeli wartość wyrażenia logicznego jest prawda wówczas wykonywany jest blok instrukcji pomiędzy if i end. Dodatkowe warunkowanie wykonania instrukcji if uzyskujemy dzięki wyrażeniom else i elseif: if wyrażenie_logiczne_if blok instrukcji_if else blok instrukcji_else end if wyrażenie_logiczne_if blok instrukcji_if elseif wyrażenie_logiczne_elseif blok instrukcji_elseif Ćwiczenie 1 - Wprowadzenie do MATLAB'a 5/14

else end blok instrukcji_else Wyrażenie else nie posiada warunku logicznego, a związany z nim blok instrukcji jest wykonywany jeśli wyrażenie logiczne poprzedzające else (dla if lub elseif) nie jest spełnione. Wyrażenie elseif posiada warunek logiczny, którego wartość jest wyznaczana jeśli poprzedzający warunek if nie jest spełniony. Za pomocą pętli możliwe jest powtarzalne wykonywanie bloków instrukcji. Jedno powtórzenie nazywamy iteracją. Jeśli znana jest liczba iteracji wykorzystuje się pętlę for. Pętla for ma następującą składnię: for index=start:krok:koniec blok instrukcji end Domyślną wartością kroku jest 1 (jeśli krok ma wynosić 1 to można go pominąć). 3.7 Podstawowe operacje graficzne Okna graficzne Okno graficzne (ang. figure) jest oknem MATLAB'a, w którym umieszczane są elementy graficzne (wykresy i ilustracje). Okno graficzne jest tworzone bezpośrednio przez wywołanie funkcji figure lub powstaje automatycznie w wyniku wywołania funkcji graficznej, o ile żadne okno graficzne nie zostało utworzone wcześniej. Jeśli istnieje okno graficzne MATLAB wykorzystuje je do stworzenia nowego wykresu/ilustracji. Jeśli istnieje wiele okien graficznych wyjście bieżącej operacji graficznej przekazywane jest do okna aktywnego. Aby wybrać właściwe okno należy wskazać i otworzyć je przy pomocy myszy lub wykonać polecenie figure(n), gdzie n numer okna (widoczny na pasku tytułowym okna graficznego). W tym samym oknie graficznym można wyświetlić wiele wykresów za pomocą funkcji subplot. Polecenie subplot(m.n.p) tworzy okno graficzne (o ile nie jest otwarte żadne okno graficzne) podzielone na m wierszy i n kolumn i wybiera p-ty element tak utworzonej siatki, a jeśli istnieje otwarte okno dokonuje analogicznych operacji w ramach aktywnego okna. Każdy obszar utworzony za pomocą funkcji subplot posiada własny układ współrzędnych, którego właściwości mogą być indywidualnie dopasowywane (np. osie skalowane poleceniem axis lub opisywane poleceniami xlabel czy ylabel). Podstawowe polecenia do tworzenia wykresów i ilustracji MATLAB udostępnia wiele różnych funkcji do tworzenia wykresów liniowych. Wybrane polecenia tworzące wykresy liniowe 2D zebrano w Tabeli 1. Funkcja plot Funkcja plot umożliwia tworzenie wykresów liniowych z liniowa skala na obu osiach. Funkcja plot może być wywoływana z różną liczbą argumentów wejściowych. Warianty wywołania funkcji plot zebrano w Tabeli 2. Ćwiczenie 1 - Wprowadzenie do MATLAB'a 6/14

Opcje stylu pozwalają na zdefiniowanie koloru i rodzaju linii oraz znaczników (markerów) punktów. Zestawienie tych parametrów przedstawiono w Tabeli 3. Tab. 1 Podstawowe funkcje do tworzenia wykresów liniowych 2D Funkcja Opis plot loglog semilogx semilogy plotyy Wykres danych z liniowa skalą na obu osiach Wykres danych z logarytmiczną skalą na obu osiach Wykres danych z logarytmiczną skalą na osi x i liniową na osi y Wykres danych z liniową skalą na osi x i logarytmiczną na osi y Wykres danych z dwoma różnymi liniowymi skalami osi y po lewej i prawej stronie Tab. 2 Warianty wywołania funkcji plot plot(y) plot(x,y) plot(x,y, opcje stylu ) plot(x1,y1,x2,y2) plot(x,[y1; y2]) plot(x1,y1, os1,x2,y2, os2 ) pojedynczy wykres (y - wektor), x domyślne (indeks elementy w wektorze y: [1,2,3, length(y)]), opcje stylu domyślne pojedynczy wykres (y wektor), opcje stylu domyślne pojedynczy wykres (y-wektor) ze określeniem opcji stylu dwa wykres wektorów y1, y2 ze określeniem i wektorów dla osi x (x1, x2), opcje stylu domyślne dwa wykres wektorów y1, y2 będących kolumnami macierzy ([ ]), wspólny wektory dla osi x, opcje stylu domyślne dwa wykres wektorów y1, y2 z określeniem opcji stylu i wektorów dla osi x (x1, x2) Tab. 3 Opcje stylu Opcje koloru Opcje rodzaju linii Opcje rodzaju oznaczenia punktów y żółty m purpurowy c zielononiebieski r czerwony g zielony b niebieski w biały k czarny - linia ciągła -- linia przerywana : linia kropkowana -. linia typu kreska-kropka + symbol plusa o kółko * gwiazdka * x znak x. kropka s kwadra/t d romb v/^/>/< trójkąt s/r/w/v p gwiazdka pięciokątna h gwiazdka sześciokątna Ćwiczenie 1 - Wprowadzenie do MATLAB'a 7/14

Style tworzą atrybuty koloru, rodzaju linii oraz znacznika osobno lub w połączaniu, np.: plot(x,y,'r'); plot(x,y,'+') plot(x,y,'b--'); W przypadku kilku wykresów tworzonych jednym wywołaniem polecenia plot z pominięciem parametru określającego typ linii (opcji stylu) kolory linii wykresów dobierane są automatycznie. Wykresy nakładane MATLAB oferuje możliwość tworzenia wykresów nakładanych. Służy do tego np. polecenie hold. Polecenie to jest przydatne w sytuacji gdy nie wszystkie dane są dostępne od razu w momencie tworzenia wykresu. Wywołanie polecenia hold lub hold on w dowolnym momencie sesji MATLAB'a powoduje zamrożenie bieżącego wykresy w aktywnym oknie graficznym. Następne wykresy, generowane poleceniem plot, są wówczas dodawane do bieżącego wykresu. Odmrożenie wykresu następuje po kolejnym wywołaniu polecenia hold lub polecenia hold off. Polecenie ishold zwraca 1/0 dla stanu on/off polecenia hold. Podstawowe polecenia do tworzenia opisów wykresów i ilustracji Opisywanie wykresów za pomocą łańcuchów znakowych i elementów objaśniających poprawia czytelność i ułatwia interpretację zilustrowanych danych. Program MATLAB umożliwia m.in.: dodawanie opisów osi i tytułów, dodawanie legendy, dodawanie siatki współrzędnych, dodawanie do wykresów elementów opisujących. Zestaw wybranych funkcji pozwalających na tworzenie opisów i modyfikowanie wykresów zebrano w Tabeli 4. Tab. 4 Podstawowe funkcje do tworzenia opisów i modyfikowania wykresów. Funkcja Opis tilte('łańcuch') xlabel('lancuch') ylabel('lancuch') axis[xmin,xmax,ymin,ymax] grid on/off legend tytuł wykresu etykieta osi x etykieta osi x ustawia widoczny zakres osi x wykresu od x min do x max, a osi y od y min do y max aktywacja/deaktywacja siatki współrzędnych na wykresie legenda do wykresu Podstawowe polecenia do modyfikacji właściwości układu współrzędnych Podczas tworzenia wykresu/ilustracji MATLAB automatycznie dobiera granice osi współrzędnych. Często zachodzi jednak potrzeba zmiany tej skali. Aby ustawić własne zakresy osi układu współrzędnych należy użyć polecenia: axis([xmin xmax ymin ymax]) Ćwiczenie 1 - Wprowadzenie do MATLAB'a 8/14

Proces konstruowania wykresu Proces konstruowania wykresu przebiega w trzech etapach: (1) przygotowanie danych x = 0:0.1:2*pi; y1 = cos(x); y2 = sin(x); y3 = sin(x) + cos(x); y4 = sin(x).*cos(x); (2) ewentualny wybór okna graficznego oraz pozycji obszaru wykresu figure(1) subplot(2,2,1) (3) wywołanie funkcji służącej do generacji wykresu plot(x,y1,'-r',x,y2,':b',x,y3,'--g',x,y4,'.-k') (4) ewentualne ustawienie zakresów osi oraz włącznie siatki axis([0 max(x) -1.5 1.5]) grid on (5) tworzenie opisów xlabel('kat [rad]'); ylabel('amplituda'); title('funkcje trygonometryczne'); legend('sin(x)','cos(x)','sin(x) + cos(x)','sin(x)cos(x)'); Tworzenie ilustracji obrazów Aby wczytać obraz do przestrzeni roboczej MATLAB należy użyć polecenia imread: X = imread('nazwa_pliku_graficznego'); gdzie X jest macierzą reprezentująca obraz w przestrzeni roboczej MATLAB'a MATLAB oferuje kilka funkcji pozwalających na utworzenie graficznej reprezentacji danych 2D. Do ilustracji obrazów służy m.in. funkcja imshow. Najprostsze wywołanie funkcji imshow przedstawiono poniżej: imshow(x) gdzie X jest zmienną zawierająca obraz. Polecenie imshow(x, [min max]) tworzy ilustrację obrazu X w skali szarości z określeniem zakresu wyświetlanych wartości obrazu X: wartości obrazu X mniejsze i równe min są wyświetlane w kolorze czarnym, natomiast wartości równe lub większe od max są wyświetlane w kolorze białym, wartości z przedziału [min max] są wyświetlane w odcieniach szarości. Polecenie imshow(x, []) tworzy ilustracja obrazu X w skali szarości, przy czym wartość min(x) jest wyświetlana w kolorze czarnym, max(x) w kolorze biały, a wartości z przedziału [min(x):max(x)] w odcieniach szarości. Ćwiczenie 1 - Wprowadzenie do MATLAB'a 9/14

Aby uzyskać informacje o wartości danego piksela należy po otwarciu okna graficznego z ilustracja obrazu (imshow) wywołać polecenie impixelinfo. Wartość i współrzędne piksela wskazywanego przez kursor będą wówczas wyświetlane w lewym dolnym rogu okna graficznego. Jeśli informacje te mają być zapisane w przestrzeni roboczej należy wskazać wybrany element obrazu i przycisnąć prawy przycisk myszy a następnie wybrać opcję Copy pixel info. Współrzędne piksela i jego wartość są wówczas kopiowane do schowka i mogą zostać zapisane do zmiennej w oknie poleceń. Pobrany obraz można zwizualizować poleceniem: imshow(im). Dla okna graficznego prezentującego obraz można również stosować wymienione wyżej funkcje opisujące tj.: title, xlabel, ylabel oraz subplot. Ewentualnie, do wizualizacji, można wykorzystać modularne narzędzia graficzne dostarczane przez moduł Image Acquisition Toolbox: imtool(im) Narzędzia te umożliwiają m.in.: podgląd obrazu podgląd pikseli obrazu w danym regionie (Tools>Pixel Region) pomiar odległości na obrazie(tools>measure Distance) wycięcie fragmentu obrazu(tools>crop Image) poprawę kontrastu w przypadku obrazów w odcieniach szarości lub indeksowanych (Tools>Adjust Contrast) 3.8 Przenoszenie rysunków do różnych aplikacji Przeniesienia rysunku z MTALAB'a do innej aplikacji dokonuje się przez wybór z menu Edit okna graficznego MATLAB'a opcji Copy Figure. W opcjach kopiowania (menu Edit/Copy Options) należy ustawić opcję Preserve information (metafile if possible), aby nie utracić rozdzielczości i czytelności opisów na rysunku. Zaleca się również wybranie opcji Transparent background w celu uniknięcia przeniesienie szarego tła. Wybór opcji Edycja/Wklej (lub użycie kombinacji klawiszy ctrl+v ) w innej aplikacji spowoduje skopiowanie rysunku przechowywanego w schowku (ang. clipborad). Ćwiczenie 1 - Wprowadzenie do MATLAB'a 10/14

3.9 Standardowe funkcje MATLAB'a. Elementarne funkcje matematyczne cos(x) sin(x) abs(x) log10(x) log(x) sqrt(x) - cosinus - sinus - wartość bezwzględna/moduł liczby zespolonej - logarytm dziesiętny - logarytm naturalny - pierwiastek kwadratowy round(x) - zaokrąglanie liczby rzeczywistej do najbliższej całkowitej max(x) - znalezienie wartości maksymalnej w wektorze x min(x) - znalezienie wartości minimalnej w wektorze x sum(x) - wyznaczenie sumy wszystkich elementów wektora x mean(x) - wyznaczenie wartości średnie uwzględniając wszystkie elementy wektora x median(x) - mediana danych zawartych w wektorze x? Tworzenie grafiki figure - nowe okno graficzne plot(x,y,'s') - liniowy wykres dwuwymiarowy subplot(m,n,p) - dzieli okno graficzne na m x n okienek, a wykres jest tworzony w każdym p-tym okienku hold (on/off) - zamraża i odmraża aktualny wykres umożliwiając utworzenie wykresów nakładanych Modyfikowanie wykresów grid on/off - aktywacja/deaktywacja siatki współrzędnych na wykresie title('lancuch') - tytuł wykresu xlabel('lancuch') - opis osi x ylabel('lancuch') - opis osi y axis[x min,x max,y min,y max ] - ustawia widoczny zakres osi x wykresu od x min do x max, a osi y od y min do y max axis tight - automatycznie ustawia widoczny zakres osi wykresu pomiędzy wartość minimalne a maksymalne danych wejściowych axis xy - ustawia początek układu współrzędnych w lewym dolnym rogu wykresu axis ij - ustawia początek układu współrzędnych w lewym górnym rogu wykresu Ćwiczenie 1 - Wprowadzenie do MATLAB'a 11/14

4. Przebieg ćwiczenia Oznaczenia użyte w tekście: (sygnal) nazwa funkcji, która powinna zostać użyta w celu rozwiązania danego problemu, s1 nazwy zmiennych, s1a=s1(1:end/4) polecenie MATLAB'a, które należy wpisać w okno komend (ang.: command window). 1. Tworzenie wektorów i macierzy a) Utwórz wektor wierszowy: x=[2 4 6 8 10 12 14 16 18] poprzez podanie jego elementów korzystając z operatora : korzystając z funkcji linspace 8 6 4 2 b) Utwórz wektor kolumnowy: 0 2 4 y=[ 6 8] poprzez podanie jego elementów korzystając z operatora : korzystając z funkcji linspace c) Mając dany wektor t złożony z elementów o wartościach od 1 do 2 z krokiem co 0.2 utwórz wektor s, którego wartości określone są wyrażeniem s t =sin 2 3t cos 2 3t d) Utwórz macierz o następującej postaci: A=[ 2 4 1 9] 6 7 2 3 5 2. Operacje macierzowe a) Wyznacz sumę wszystkich elementów wektorów x i y (sum). b) Wyznacz wektor dt, którego kolejne elementy będą miały wartość równą wynikowi dzielenia przez siebie odpowiednich elementów wektorów x i y. c) Wyznacz wynik macierzowego mnożenia wektora x przez samego siebie. Wyjaśnić przyczynę błędu. d) Wyznacz wynik macierzowego mnożenia wektorów x i y. e) Utwórz wektor x1 zawierający trzeci wiersz macierzy A. Ćwiczenie 1 - Wprowadzenie do MATLAB'a 12/14

f) Utwórz macierz y13 zawierającą pierwszą i trzecią kolumnę macierzy A. g) Wyznacz wartość średnią dla każdej kolumny i każdego wiersza macierzy A. h) Wyznacz sumę wszystkich elementów w macierzy A. 3. Operacje logiczne a) Utwórz wektory wierszowe x1 i x2: x1=[0 1 2 3 4 5 6 7 8 9] i x2=[5 1 3 4 9 8 7 2 0 6]. Wykonaj poniższe polecenia i zinterpretuj wyniki wyrażeń: x1 > x2 x1 & x2 (x1 > 2) x1(x1 >4) b) W wektorze x1 zmień wszystkie elementy większe od 5 na 5. c) Oblicz sumę elementów o wartościach nieparzystych w wektorze x2 (sum, find, rem). 4. Instrukcje sterujące a) wykonaj polecenie z p. 3.c) korzystając z instrukcji sterujących (for i if). 5. Operacje graficzne a) Utwórz w jednym układzie współrzędnych wykresy następujących funkcji y1(x)=sin(x) i y2(x)=cos(x) dla -π x π. Linia wykresu funkcji y1(x) powinna być ciągła i koloru niebieskiego, a funkcji y2(x) koloru czerwonego. Nadaj etykiety osiom i tytuł rysunkowi. Dobierz zakresy osi x i y. Dodaj siatkę i legendę. (plot, axis, title, xlabel, ylabel, legend, grid) b) Utwórz w jednym oknie graficznym, ale w odrębnych układach współrzędnych wykresy funkcji y1(x)=sin(x), y2(x)=cos(x), y3(x)=sin(3*x) i y4(x)=cos(2*x) dla -π x π. Linia wykresu funkcji y1(x) powinna być ciągła i koloru niebieskiego, funkcji y2(x) koloru czerwonego, funkcji y3(x) koloru zielonego, a funkcji y4(x) koloru czarnego. Nadaj etykiety osiom i tytuły wykresom Dobierz zakresy osi x i y. Dodaj siatkę. (subplot, plot, axis, title, xlabel, ylabel, grid) c) Do zmiennej moon wczytaj obraz z pliku 'moon.tif', a następnie utwórz jego ilustrację (imread, imshow). d) W nowym oknie graficznym w odrębnych układach współrzędnych (obok siebie) utwórz ilustracje: imshow(moon/2) i imshow(moon/2,[ ]) (subplot, title). Nadaj tytuły rysunkom. Wyjaśnij zaobserwowane różnice. e) W nowym oknie graficznym w odrębnych układach współrzędnych utwórz ilustrację obrazu oraz wykresy profili jego środkowej kolumny (na prawo od ilustracji obrazu) i środkowego wiersza (poniżej ilustracji obrazu).(subplot, imshow, plot, title, xlabel, ylabel, axis). Ćwiczenie 1 - Wprowadzenie do MATLAB'a 13/14

Sprawozdanie Ćwiczenie... Data... L.p. Imię i nazwisko Grupa Data 1 2 3 Punkt ćwiczenia Liczba punktów do uzyskania Uzyskana liczba punktów Uwagi prowadzącego 1 2 2 2 3 2 4 1 5 3 Ćwiczenie 1 - Wprowadzenie do MATLAB'a 14/14