Slowniczek matlab


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
%instrukcja wykonywana jeżeli warunek jest spełniony
end
instrukcja for, przykładowa konstrukcja:
%% rób pętle od 1 do N (domyslnie z krokiem 1)
for R = 1:N
for C = 1:N
A(R,C) = 1/(R+C-1); %% uzupelnianie po kolei wierszy wartością 1/(R+C-1)
end;
end;
% kiedy chcemy z innym krokiem piszemy np.:
for S = 1.0: -0.1: 0.0, %% wykonuj rozpoczynając od S=1 z krokiem -0.1 aż do wartości 0.0,
%% róznie dobrze liczby można zastąpić zmiennymi
do_some_task_(S),
end;
strcat  służy do łączenia kilku znaków w jedne ciąg
przykład:
str1 =  Jan Kowa ;
str2 =  lski ;
str3 = strcat(str1,str2); %W zmiennej str3 będzie ciąg znaków:  Jan
Kowalski
num2str  służy do zamiany liczby na ciąg znaków, przykład:
NR = 3;
I = imread(strcat(sum2str(NR), .jpg ));
str2double  służy do zamiany ciągu znaków na liczbę
Operacje na plikach:
- plik1=fopen('tekst.txt','w+');otwiera lub tworzy plik do odczytu i zapisu, usuwa zawartość jeśli
była
- fclose(plik1) / fclose( all )- zamyka plik
- zapisanie danych do pliku tekstowego
fprintf(IDpliku, ciąg_znaków, zmiennal, zmienna2,...);
V = 20;
IdObiektu = 9;
Plik = fopen('Obiekty.txt', ' w');
fprintf(Plik,'Obiekt %d ma predkosc %d km/h\n',IdObiektu,V);
fclose(Plik);
W efekcie w pliku Obiekty.txt zostanie zapisana informacja - Obiekt 9 ma predkosc 20 km/h
%d oznacza że w tym miejscu ma zostać wstawiona liczba całkowita (zgodnie z kolejnością podania argumentów) (%s
-string)
\n oznacza przejście do nowej linii


Wyszukiwarka

Podobne podstrony:
MATLAB cw Skrypty
Słownik PUA
SIMULINK MATLAB to VHDL Route
01 Slownik LACINSKO Polski Kumaniecki K (A)
IMiR NM2 Introduction to MATLAB

więcej podobnych podstron