Slowniczek matlab.odt

(37 KB) Pobierz

Operatory matematyczne: + - * / ^                            == równość                            = podstawienie (:=)

 

Definiowanie macierzy:

 

Wiersze w macierzy oddzielamy średnikami ( ; )

natomiast kolumny w macierzy oddzielamy przecinkami  lub spacjami ( , )

 

macierz K o wymiarach 3 x 4 wpisując:

K=[4 0 0 1; 2 1 7 -1; 0 -1 1 2];

Macierz może być również definiowana jako macierz blokowa (zbudowana z innych macierzy)

warunkiem jest by zgadzały się wymiary macierzy.

 

np.: D = [A B; C];

lub w sposób kombinowany, np.:

D = [A B;[1 3 0 9; 0 0 1 1]];

 

Inne możliwości:

K(2,3) – wybór elementu z 2-go wiersza z 3-ej kolumny macierzy K

K(:,4) -wybór całej kolumny 4

K(3,:) -wybór całego wiersza 3

C = K(2,3:4)              -wybór z wiersza nr 2, el od 3 do 4

C1 = K(2:3,1)              -wybór el od 2:3 z kolumny 1

 

Dwukropki oznaczają, że przetwarzamy wszystkie wiersze i wszystkie kolumny obrazu

 

Inne pomocnicze sposoby definiowania macierzy:

M=zeros(3,6) – definiujemy macierz złożoną z samych zer,

M=ones(3,4) – definiujemy macierz złożoną z samych jedynek,

M=eye(3,3) – macierz z jedynkami na przekątnej.

 

Komendy:

 

Polecenie clc służy do czyszczenia okna poleceń.

Polecenie clear usuwa wszystkie utworzone do tej pory zmienne.

 

imfinfo(‘nazwa pliku.roz’) - służy do odczytania informacji o pliku graficznym służy funkcja

 

I = imread(‘test_2.jpg’); - służy do wczytania obrazu do zmiennej

 

figure(2); służy do otwierania nowego okna

imshow(I); służy do wyświetlania obrazu / wykresu w otwartym oknie

imhist(I); służy do wyświetlania histogramów w odcieniach szarości

improfile(I,[XA,XB],[YA,YB]) – funkcja określająca poziomy jasności wzdłuż

zdefiniowanej linii A-B. Funkcja zwraca wektor P przechowujący dane o jasności kolejnych pikseli

wzdłuż profilu.

hold on pozwala zamrozić obraz w oknie w celu wyświetlenia dwóch elementów pokrywających się (np. zdjęcie i wykres)

I = plot(H,’-g’);  wyświetlanie zawartości macierzy w formie wykresu (wcześniej otworzyć okno)



Podział obrazu na składowe barwne (utworzenie nowych macierzy R,G i B):

R = I(:,:,1); %%macierz w wyizolowanym kanale czerwonym itd.

G = I(:,:,2);

B = I(:,:,3);

 

Zamiana kompozycję RGB na BGR:

%% przypisanie poszczególnym kanałom macierzy I innych kolorów

I(:,:,1) = B;

I(:,:,2) = G;

I(:,:,3) = R;

 

Wycinanie z obrazu I pierwszych 100 wierszy i kolumn:

Fragment = I(1:100,1:100,:);

Dwukropek oznacza wybór wszystkich kanałów.

 

[W K C] = size(I); służy do odczytu wymiaru tablicy I, gdzie W to ilość wierszy, K to ilość kolumn, C to ilość kanałów. Dla obrazu szarego:  [W K] = size(I);

 

Jeżeli size(); przypiszemy do pojedynczej macierzy to otrzymamy dwuelementową macierz gdzie pierwsza kolumna oznacza ilość wierszy, natomiast druga kolumna oznacza ilość wierszy. Jeżeli chcemy wyizolować wartości dla W i dla K to należy opisać to jak wyżej.

 

rgb2gray(I) konwersja obrazu RGB na obraz w skali szarości,

im2bw(I,próg) ‐ konwersja obrazu w skali szarości na obraz binarny, próg z zakresu 0..1. próg mówi od jakiej wartości ma być granica czerni i bieli

mat2gray(I) - konwersja macierzy na obraz.

 

imadd(I,J) – dodawanie obrazów,

imsubtract(I,J) – odejmowanie obrazów,

imcomplement(I) – obliczenie uzupełnienia obrazu.

 

max, min, mean, sum – podstawowe funkcje arytmetyczne,

 

np. mean(R)– wektor wierszowy zawierający (domyślnie) średnie wartości każdej z kolumn.

Jeżeli chce się świadomie obliczyć średnie z wszystkich kolumn należy polecenie sformułować następująco: mean(R,1)

Aby obliczyć średnie z wszystkich wierszy należy : mean(R,2)

Aby obliczyć średnią wartość dla całej tablicy musimy daną funkcję zastosować dwukrotnie np.: mean(mean(R))

 

streching obrazu: ??

imadjust(I,[low_in,high_in], [low_out,high_out],gamma)

[low_in,high_in] – wektor określający zakres wejściowy poziomów jasności,

[low_out,high_out] – wektor określający zakres wyjściowy poziomów jasności,

gamma – współczynniki korekcji wykładniczej „gamma” (domyślnie 1)

W nawiasach kwadratowych muszą być wartości z przedziału [0,1].

 

 

Filtracja obrazów

 

 

G = imfilter(A, w), gdzie

              A – obraz wejściowy,

              w – zadana przez nas macierz filtru,

              G – obraz wynikowy

 

w = fspecial('type', parametry opcjonalne).

 

Uśredniający = wygładzający

 

Pierwszy parametr, 'type' definiuje rodzaj wybranego filtru i może przyjąć następującą postać:

• 'average' filtr uśredniający o domyślnym rozmiarze 3 x 3,

• 'disk' kołowy filtr uśredniający wewnątrz macierzy kwadratowej o domyślnym promieniu 5,

• 'gaussian' uśredniający filtr gausowski o domyślnym rozmiarze 3 x 3 i odchyleniu standardowym 0.5,

• 'laplacian' filtr Laplace'a,

• 'log' połączony filtr Laplace'a i Gaussa,

• 'prewitt' – filtr Prewitta do wykrywania krawędzi o domyślnym rozmiarze 3 x 3; standardowo filtr

wykrywa krawędzie pionowe. W celu wykrycia poziomych należy otrzymaną macierz transponować,

• 'sobel' analogiczny filtr Sobela do wykrywania krawędzi,

• 'unsharp' filtr podkreślający krawędzie obiektów.

 

Z filtrów nieliniowych najczęściej używany jest medianowy, wywoływane przez następującą funkcję:

              M = medfilt2(A, [m n]), gdzie

              M = wiener2(A, [m n]),  - usuwa zakłócenia (uśrednia wartości)

              A – obraz wejściowy,

              [m,n] – rozmiar filtru.

              M – obraz wyjściowy

Filtr medianowy jest to filtr stosowany do usuwania zakłóceń z obrazu w postaci szumów.

 

Filtry morfologiczne

Termin morfologia oznacza m. in. badanie „struktury i kształtu”.

 

Metody morfologii matematycznej pozwalają rozpoznawać budowę obiektów, a także przetwarzać ich kształt poprzez analizę badanego obrazu za pomocą specjalnych obiektów tzw. elementów strukturalnych.

Najpopularniejszymi z tej grupy filtrami jest erozja i dylatacja. W MATLAB’ie funkcje te definiuje się w

następujący sposób:

 

e = imerode(A, se)

d = imdilate(A, se), gdzie

A – obraz wejściowy,

se –element strukturalny.

Złożenie obu funkcji tworzy (zależnie od kolejności złożenia) operacie otwarcia i zamknięcia:

e = imopen(A, se)

d = imclose(A, se).

 

Inną częściej stosowaną funkcją morfologiczną stosowaną na obrazach binarnych jest:

M = bwmorph(BW,’operacja’),

BW – binarny obraz wejściowy.

Operacje to m. In.:

‘dilate’, ‘erode’, ‘thin’ – ścienianie, ‘fill’ – wypełnianie. Inne opcje należy sprawdzić w helpie.

 

Zmiana geometrii obrazu

 

Zmiana rozmiaru:

Imresize(image, scale);

                      przy skali 2 wymiary zostaną zwiększone 2x, przy skali 0.5, wymairy zostaną zmniejszone dwukrotnie

 

Imresize(image, [numrow numcol]);

              - podajemy ile wierszy i kolumn ma mieć nowa macierz

Imresize(image, [numrow numcol], method);

 

rodzaje method:

 

        'nearest'    - nearest-neighbor interpolation 

        'bilinear'   - bilinear interpolation 

        'bicubic'  - bicubic (domyslna)

 

Zmiana skali:

Imrotate(images, angle, method, bbox);

 

uwaga! Kąt jest w układzie kartezjańskim (przeciwnie do ruchu wskazówek zegara w stopniach.

Metoda – jak wyżej; bbox – może być crop (przycięty do wielkości obrazu wejściowego), loose (pozostawienie rozmiaru),

 

Przesunięcie:

 

Nie jest zautomatyzowane – polega na sztucznym dodawaniu czarnych/bialysz fragmetow z okreslonej strony.

 

Przykład:

 

I1– obraz wejściowy o „r” wierszach i „c”kolumnach [r1, c1] ,

I2– obraz wyjściowy [r2, c2],

wektor przesunięcia[r0, c0],

 

 

to jeśli [r1, c1] = size (I1); wówczas obraz I2 będzie zdefiniowany:

 

I0 = zeros([r0 (c0+c1)]

 

I2=[zeros([r1 c0]), I1; I0)];

 

 

 

Instrkcje i pętle:

 

instrukcja warunkowa if:

budowa:

 

if warunek

              ...

Zgłoś jeśli naruszono regulamin