• Nem Talált Eredményt

M´ern¨oki informatika korszer˝u fejleszt˝o eszk¨ozei MATLAB alapok Sergy´an Szabolcs

N/A
N/A
Protected

Academic year: 2023

Ossza meg "M´ern¨oki informatika korszer˝u fejleszt˝o eszk¨ozei MATLAB alapok Sergy´an Szabolcs"

Copied!
75
0
0

Teljes szövegt

(1)

M´ ern¨ oki informatika korszer˝ u fejleszt˝ o eszk¨ ozei

MATLAB alapok

Sergy´an Szabolcs

sergyan.szabolcs@nik.uni-obuda.hu

Obudai Egyetem´ Neumann J´anos Informatikai Kar

2012. febru´ar 17.

(2)

Aj´ anlott irodalom

K¨onyvek

R.C. Gonzalez, R.E. Woods, S.L. Eddins: Digital Image Processing Using MATLAB.Pearson Prentice Hall, 2004

T. Svoboda, J. Kybic, V. Hlavac: Image Processing, Analysis, and Machine Vision – A MATLAB Companion. Thomson, 2008 Honlapok

Mathworks honlap: www.mathworks.com

DIPUM k¨onyvh¨oz kapcsol´odva: www.imageprocessingplace.com K¨ovesi P´eter honlapja:

www.csse.uwa.edu.au/ pk/Research/MatlabFns/

Saj´at honlap: nik.uni-obuda.hu/sergyan

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 2 / 74

(3)

MATLAB

MATLAB =MATrix LABoratory Kezdetben matematikai szoftver volt Ma m´ar ´altal´anos m´ern¨oki szoftvercsomag

Az alapcsomaghoz ´un. toolboxok(f¨uggv´enygy˝ujtem´enyek) kapcsol´odnak

Image Processing Toolbox Image Aquisition Toolbox Signal Processing Toolbox Neural Network Toolbox Fuzzy Logic Toolbox Wavelet Toolbox

Folytonos ´es diszkr´et szimul´aci´ok is fejleszthet˝ok: Simulink

(4)

MATLAB k¨ ornyezet

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 4 / 74

(5)

MATLAB k¨ ornyezet

Parancs ablak

Ide ´ırhatunk parancsokat

Itt jelennek meg a m˝uveletek eredm´enyei

(6)

MATLAB k¨ ornyezet

Workspace

A parancsablakban kiadott utas´ıt´asok eredm´enyek´ent l´etrej¨ov˝o v´altoz´ok list´aja tal´alhat´o itt

Ha egy v´altoz´ora dupl´an kattintunk, akkor az Array Editor-ban l´athatjuk az ´ert´ekeit

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 6 / 74

(7)

MATLAB k¨ ornyezet

Current Directory

Az aktu´alis k¨onyvt´arban tal´alhat´o f´ajlok nyihat´ok meg, az itt l´ev˝o programok futtathat´ok el´er´esi ´ut megad´asa n´elk¨ul.

Ha egy k¨onyvt´ar a Path-ban van, akkor annak f´ajljai is el´erhet˝ok.

Path m´odos´ıt´asa: File / Set Path

(8)

MATLAB k¨ ornyezet

Command History

A legut´obbi parancsok list´aja l´athat´o itt B´armely kor´abbi parancs ´ath´uzhat´o a parancsablakba ´es ´ujra v´egrehajthat´o

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 8 / 74

(9)

MATLAB k¨ ornyezet

Editor

Programok ´ır´asa szolg´al´o ter¨ulet

(10)

Digit´ alis k´ ep ´ abr´ azol´ asa

Egy (sz¨urke´arnyalatos) k´epet egy k´etv´altoz´os f(x,y)

f¨uggv´enyk´ent is felfoghatjuk, aholx ´esy a t´erbeli koordin´at´ak, a f¨uggv´eny

´

ert´eke pedig megadja az adott helyen a k´ep intenzit´as´at.

Ha x,y ´es az f intenzit´as ´ert´ekek is v´eges elem˝u halmazb´ol ker¨ulnek ki, akkor a k´epet digit´alis k´epnek nevezz¨uk.

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 10 / 74

(11)

Koordin´ ata konvenci´ ok

Forr´as: DIPUM

(12)

K´ epek mint m´ atrixok

Egy digit´alis k´epet m´atrixk´ent tudunk ´abr´azolni:

f=

f(1,1) f(1,2) · · · f(1,N) f(2,1) f(2,2) · · · f(2,N)

... ... . .. ... f(M,1) f(M,2) · · · f(M,N)

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 12 / 74

(13)

K´ epek beolvas´ asa

imread(’filename’)

N´eh´any p´elda:

f=imread(’chestxray.jpg’);

f=imread(’D:\myimages\chestxray.jpg’);

f=imread(’.\myimages\chestxray.jpg’);

(14)

T´ amogatott k´ epform´ atumok

Form´atum Le´ır´as Kiterjeszt´es

neve

TIFF Tagged Image File Format .tif,.tiff

JPEG Joint Photographic Experts Group

.jpg,.jpeg

GIF Graphics Interchange Format .gif

BMP Windows Bitmap .bmp

PNG Portable Network Graphics .png

XWD X Window Dump .xwd

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 14 / 74

(15)

A size f¨ uggv´ eny

size(imagematrix)

>> size(f) ans =

494 600

>> [M,N]=size(f);

>> whos f

Name Size Bytes Class

f 494x600 296400 uint8 array

Grand total is 296400 elements using 296400 bytes

(16)

K´ epek megjelen´ıt´ ese

imshow(f,...)

imshow(f) – megjelen´ıti a k´epet mindenf´ele v´altoztat´as n´elk¨ul imshow(f, [low,high]) – a low´ert´ekn´el kisebb intenzit´as´u pixeleket feketek´ent, a high´ert´ekn´el nagyobb intenzit´as´u pixeleket feh´erk´ent jelen´ıti meg, a k´et ´ert´ek k¨oz¨otti intenzit´asokat pedig

´

atsk´al´azza

imshow(f, [])– hasonl´oan m˝uk¨odik az el˝oz˝oh¨oz, azzal a

m´odos´ıt´assal, hogylow´ert´eke az intenzit´asok minimuma,high pedig az intenzit´asok maximuma

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 16 / 74

(17)

K´ epek megjelen´ıt´ ese

Egy alacsony intenzit´as´u pixeleket tartalmaz´o k´ep megjelen´ıt´ese imshow(f), illetveimshow(f, [])paranccsal

Forr´as: DIPUM

(18)

M´ as megjelen´ıt´ ese m´ od

>> boy = imread(’Ondra sampling.jpg’);

>> image(boy)

>> axis image

>> title(’Input color image of a boy’)

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 18 / 74

(19)

M´ as megjelen´ıt´ ese m´ od

>> whos boy

Name Size Bytes Class Attributes

boy 808x1010x3 2448240 uint8

>> %extract individual color components

>> boyR = boy(:,:,1); %image with the red channel content

>> boyG = boy(:,:,2); %image with the green channel content

>> boyB = boy(:,:,3); %image with the blue channel content

>> figure %create a new MATLAB figure

>> %draw four images into the figure

>> subplot(2,2,1), subimage(boy), axis off, title(’boy - color image’)

>> subplot(2,2,2), subimage(boyR), axis off, title(’boyR - red channel’)

>> subplot(2,2,3), subimage(boyG), axis off, title(’boyG - green channel’)

>> subplot(2,2,4), subimage(boyB), axis off, title(’boyB - blue channel’)

(20)

M´ as megjelen´ıt´ esi m´ od

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 20 / 74

(21)

Konverzi´ o ´ es rajzol´ as a k´ epre

>> boyGray = rgb2gray(boy); % convert the color image into a gray-level one

>> figure % create a new MATLAB figure

>> image(boyGray) % display the grayscale image

>> colormap(gray(256)) % use the appropriate color map

>> axis off % switch off the axes with scales

>> % create a line segment between pixels (460,140) and (872,457),

>> % values given in (row,column) coordinates

>> r1 = 460; c1 = 140; r2 = 872; c2 = 457;

>> %draw the line to the picture

>> line( [r1, r2], [c1, c2], ’Color’, ’r’, ’LineWidth’, 3)

(22)

Konverzi´ o ´ es rajzol´ as a k´ epre

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 22 / 74

(23)

Intenzit´ asok egy adott szakasz ment´ en

>> %create a new MATLAB figure

>> figure

>> %calculate and display the intensity profile

>> %along the line segment created earlier

>> improfile( boyGray, [r1, r2], [c1, c2] )

>> ylabel(’Pixel value’)

>> title(’Intensity profile along the line segment’)

(24)

Intenzit´ asok egy adott szakasz ment´ en

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 24 / 74

(25)

K´ epek ment´ ese

imwrite(f, ’filename’)

imwrite(f, ’patient10 run1’, ’tif’) imwrite(f, ’patient10 run1.tif’)

imwrite(f, ’filename.jpg’, ’quality’, q)

Min´el kisebb q´ert´eke, ann´al nagyobb a JPEG t¨om¨or´ıt´es m´ert´eke.

(26)

K´ epek ment´ ese

q= 100 q = 50 q = 25

q= 15 q= 5 q = 0

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 26 / 74

(27)

R´ eszletes inform´ aci´ ok a k´ epekr˝ ol

imfinfo filename

>> imfinfo bubbles25.jpg ans =

Filename: ’bubbles25.jpg’

FileModDate: ’02-Feb-2005 09:34:50’

FileSize: 13354 Format: ’jpg’

FormatVersion: ’’

Width: 720 Height: 688 BitDepth: 8

ColorType: ’grayscale’

FormatSignature: ’’

NumberOfSamples: 1

CodingMethod: ’Huffman’

(28)

R´ eszletes inform´ aci´ ok a k´ epekr˝ ol

>> K = imfinfo(’bubbles25.jpg’);

>> image bytes = K.Width * K.Height * K.BitDepth / 8;

>> compressed bytes = K.FileSize;

>> compression ratio = image bytes / compressed bytes compression ratio =

37.0945

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 28 / 74

(29)

A MATLAB adat t´ıpusai

N´ev Le´ır´as

double Dupla pontoss´ag´u lebeg˝opontos sz´am−10308´es 10308k¨oz¨otti

´ert´ekekkel (8 b´ajton ´abr´azolva)

uint8 El˝ojel n´elk¨uli 8 bites eg´eszek a [0,255] intervallumban uint16 El˝ojel n´elk¨uli 16 bites eg´eszek a [0,65535] intervallumban uint32 El˝ojel n´elk¨uli 32 bites eg´eszek a [0,4294967295] intervallum-

ban

int8 El˝ojeles 8 bites eg´eszek a [-128,127] intervallumban int16 El˝ojeles 16 bites eg´eszek a [-32768,32767] intervallumban int32 El˝ojeles 32 bites eg´eszek a [-2147483648,2147483647] inter-

vallumban

single Egyszeres pontoss´ag´u lebeg˝opontos sz´am −1038 ´es 1038 k¨oz¨otti ´ert´ekekkel (4 b´ajton ´abr´azolva)

char Karakterek (2 b´ajton ´abr´azolva)

(30)

K´ ep t´ıpusok

Intenzit´as k´epek Bin´aris k´epek Indexelt k´epek RGB k´epek

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 30 / 74

(31)

Intenzit´ as k´ epek

Az intenzit´as k´epek olyan m´atrixok, amelyek elemei a sz¨urke´arnyalatos intenzit´asokat reprezent´alj´ak.

Ha az intenzit´as k´ep elemeiuint8 vagyuint16t´ıpus´uak, akkor a lehets´eges intenzit´as ´ert´ekek a [0,255], illetve a [0,65535]

intervallumba es˝o eg´eszek. Ebben az esetben a 0 ´ert´ek felel meg a fekete sz´ınnek.

Ha az elemek doublet´ıpus´uak, akkor az ´ert´ekek 0 ´es 1 k¨oz¨otti lebeg˝opontos ´ert´ekek lehetnek. Ebben az esetben 0 a fekete, 1 pedig a feh´er sz´ınnek felel meg.

(32)

Bin´ aris k´ epek

A bin´aris k´ep egy olyan m´atrix, melynek elemei logikai t´ıpus´u adatok.

Egy sz´am t¨omb logikaiv´a konvert´alhat´o az al´abbi m´odon:

B = logical(A)

Ha el akarjuk d¨onteni, hogy egy t¨omb logikai-e, akkor az islogical f¨uggv´enyt kell haszn´alnunk.

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 32 / 74

(33)

RGB k´ epek

Az RGB k´epek h´arom azonos m´eret˝u m´atrixb´ol ´ep¨ulnek fel, ahol az egyes m´atrixok (´un. r´etegek) az R, G ´es B sz´ıncsatorn´akhoz tartoz´o intenzit´as ´ert´ekeket tartalmazz´ak

Az ´ıgy kialakul´o k´ep egy h´aromdimenzi´os t¨ombk´ent van ´abr´azolva P´eld´aul az 1. r´etegre f(:,:,1)m´odon hivatkozhatunk

H´arom azonos m´eret˝u (R,G´esB) m´atrixb´ol a cat(3,R,G,B) utas´ıt´assal alkothatunk egy RGB k´epet

(34)

Indexelt k´ epek

Sz´ınes k´epek kisebb mem´oria foglal´as´u megjelen´ıt´esi m´odja Egy k´ep m´eret´evel megegyez˝o m´eret˝u m´atrix ´es egy sz´ınpaletta egy¨uttesen reprezent´alja a sz´ınes k´epet ebben az esetben

A sz´ınpaletta minden egyes sor´aban h´arom ´ert´ek, egy adott sz´ın R, G

´

es B komponense tal´alhat´o

A m´atrix egy eleme a paletta megfelel˝o elem´ere mutat

Forr´as: MATLAB Help

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 34 / 74

(35)

Adat t´ıpusok k¨ oz¨ otti konverzi´ ok

B=data class name(A)

Ha aCt¨ombdoublet´ıpus´u, amelynek minden eleme a [0,255]

intervallumba esik, akkor ezt lehet konvert´alniuint8 t´ıpusuv´a aD = uint8(C)utas´ıt´assal.

Ha Cvalamely ´ert´eke kisebb 0-n´al, akkor 0 lesz az konverzi´o ´ert´eke, ha pedig nagyobb mint 255, akkor 255-t´e v´alik.

(36)

K´ ep m´ atrixok konverzi´ oja

N´ev Kimeneti t´ıpus Bemeneti k´ep adat t´ıpusa im2uint8 uint8 logical,uint8,uint16´esdouble im2uint16 uint16 logical,uint8,unit16´esdouble mat2gray doublea [0,1]-ben double

im2double double logical,uint8,uint16´esdouble im2bw logical uint8,uint16´esdouble

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 36 / 74

(37)

K´ epm´ atrixok konverzi´ oja

>> f = [−0 . 5 0 . 5 ; 0 . 7 5 1 . 5 ]

f =

−0.5000 0 . 5 0 0 0 0 . 7 5 0 0 1 . 5 0 0 0

>> g = i m 2 u i n t 8 ( f )

g =

0 128

191 255

(38)

K´ epm´ atrixok konverzi´ oja

>> h = u i n t 8 ( [ 2 5 5 0 ; 128 2 0 0 ] ) ;

>> g = i m 2 d o u b l e ( h )

g =

0 . 0 9 8 0 0 . 1 9 6 1 0 . 5 0 2 0 0 . 7 8 4 3

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 38 / 74

(39)

K´ epm´ atrixok konverzi´ oja

>> f = [ 1 2 ; 3 4 ] ;

>> g = m a t 2 g r a y ( f )

g =

0 0 . 3 3 3 3 0 . 6 6 6 7 1 . 0 0 0 0

>> gb = im2bw ( g , 0 . 6 )

gb =

0 0

(40)

K´ epm´ atrixok konverzi´ oja

>> f = [ 1 2 ; 3 4 ] ;

>> gb = f > 2

gb =

0 0

1 1

>> gbv = i s l o g i c a l ( gb )

gbv = 1

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 40 / 74

(41)

Vektor indexel´ ese

>> v = [ 1 3 5 7 9 ]

v =

1 3 5 7 9

>> v ( 2 ) a n s =

3

>> w = v . ’

w = 1 3

(42)

Vektor indexel´ ese

>> v = [ 1 3 5 7 9 ] ;

>> v ( 1 : 3 ) a n s =

1 3 5

>> v ( 2 : 4 ) a n s =

3 5 7

>> v ( 3 : end )

a n s =

5 7 9

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 42 / 74

(43)

Vektor indexel´ ese

>> v = [ 1 3 5 7 9 ] ;

>> v ( : ) a n s =

1 3 5 7 9

>> v ( 1 : 2 : end )

a n s =

1 5 9

>> v ( end :−2 : 1 )

(44)

Hisztogram (p´ elda egy vektorra)

Egy sz¨urke´arnyalatos k´ep hisztogramj´anak elemeit egy vektorban lehet elt´arolni.

Ha egy sz¨urke´arnyalatos k´epet az f uint8t´ıpus´u m´atrixban t´aroljuk, akkor h = imhist(f)

el˝o´all´ıtja ah vektort. h(i) megadja, hogy h´any olyan pixel vanf-ben, melynek intenzit´asa i−1.

Ha az imhistf¨uggv´enyt visszat´er´esi

´

ert´ek n´elk¨ul h´ıvjuk meg, akkor megjelen´ıti a k´ep hisztogramj´at.

>> f = i m r e a d ( ’ cameraman . t i f ’ ) ;

>> i m h i s t ( f )

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 44 / 74

(45)

Vektor elemeinek kirajzol´ asa

Egy vektor elemeit is kirajzoltathatjuk az al´abbi m´odokon.

plot(h) bar(h)

(46)

Hisztogram v¨ odr¨ ok

Az imhistf¨uggv´enyn´el meghat´arozhat´o az is, hogy h´any ´un.

hisztogram v¨odr¨ot tartalmazzon a hisztogram.

Ebben az esetben a lehets´eges intenzit´as ´ert´ekek tartom´any´at felosztjuk annyi egyenl˝o hossz´us´ag´u tartom´anyra (v¨od¨orre), ahogy a v¨od¨orsz´amot meghat´aroztuk.

Az imhistf¨uggv´eny azt hat´arozza meg, hogy az egyes v¨odr¨okbe es˝o intenzit´as ´ert´ekek h´anyszor fordulnak el˝o a k´epen.

imhist(f,64) imhist(f,16) imhist(f,8)

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 46 / 74

(47)

M´ atrix indexel´ ese

>> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ]

A =

1 2 3

4 5 6

7 8 9

>> A ( 2 , 3 ) a n s =

6

(48)

M´ atrix indexel´ ese

>> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] ;

>> C3 = A ( : , 3 )

C3 = 3 6 9

>> R2 = A ( 2 , : )

R2 =

4 5 6

>> T2 = A ( 1 : 2 , 1 : 3 )

T2 =

1 2 3

4 5 6

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 48 / 74

(49)

M´ atrix indexel´ ese

>> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] ;

>> B = A ;

>> B ( : , 3 ) = 0

B =

1 2 0

4 5 0

7 8 0

>> B ( 3 , : ) = [ ]

B =

(50)

M´ atrix indexel´ ese

>>A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] ;

>>A( end , end )

a n s = 9

>>A( end , end−2)

a n s = 7

>>A ( 2 : end , end :−2 : 1 )

a n s =

6 4

9 7

>>E = A ( [ 1 3 ] , [ 2 3 ] )

E =

2 3

8 9

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 50 / 74

(51)

M´ atrix indexel´ ese

>> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] ;

>> D = l o g i c a l ( [ 1 0 0 ; 0 0 1 ; 0 0 0 ] )

D =

1 0 0

0 0 1

0 0 0

>> A(D)

a n s =

(52)

M´ atrix indexel´ ese

>> s = sum (A ( : ) )

s = 45

>> s 1 = sum (A)

s 1 =

12 15 18

>> s 2 = sum ( sum (A ) )

s 2 = 45

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 52 / 74

(53)

El˝ ore defini´ alt t¨ omb¨ ok

zeros(M,N) El˝o´all´ıt egy M ×N m´eret˝u null´akat tartalmaz´o double t´ıpus´u m´atrixot

ones(M,N) El˝o´all´ıt egy M×N m´eret˝u egyeseket tartalmaz´o double t´ıpus´u m´atrixot

true(M,N) El˝o´all´ıt egyM×N m´eret˝u egyeseket tartalmaz´ological t´ıpus´u m´atrixot

false(M,N) El˝o´all´ıt egy M ×N m´eret˝u null´akat tartalmaz´o logical t´ıpus´u m´atrixot

rand(M,N) El˝o´allt egyM×Nm´eret˝u m´atrixot, melynek elemei egyen- letes eloszl´ast k¨ovetnek a [0,1] intervallumon

randn(M,N) El˝o´all´ıt egyM×Nm´eret˝u m´atrixot, melynek elemei stan- dard norm´alis eloszl´as´uak

(54)

El˝ ore defini´ alt t¨ omb¨ ok

>> A = 5 ∗ o n e s ( 3 )

A =

5 5 5

5 5 5

5 5 5

>> B = r a n d ( 2 , 4 )

B =

0 . 8 1 4 7 0 . 1 2 7 0 0 . 6 3 2 4 0 . 2 7 8 5 0 . 9 0 5 8 0 . 9 1 3 4 0 . 0 9 7 5 0 . 5 4 6 9

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 54 / 74

(55)

find f¨ uggv´ eny

ind = find(X)

Visszaadja az Xazon elemeinek (oszlopfolytonos) index´et, amelyek ´ert´eke nem nulla.

>> A = e y e ( 3 )

A =

1 0 0

0 1 0

0 0 1

>> i n d = f i n d (A)

i n d = 1

(56)

find f¨ uggv´ eny

ind = find(X, k, ’first’)

Visszaadja az Xels˝ok darab olyan elem´enek (oszlopfolytonos) index´et, amelyek ´ert´eke nem nulla.

>> A = e y e ( 3 )

A =

1 0 0

0 1 0

0 0 1

>> i n d = f i n d (A , 2 , ’ f i r s t ’ )

i n d = 1 5

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 56 / 74

(57)

find f¨ uggv´ eny

ind = find(X, k, ’last’)

Visszaadja az Xutols´o k darab olyan elem´enek (oszlopfolytonos) index´et, amelyek ´ert´eke nem nulla.

>> A = e y e ( 3 )

A =

1 0 0

0 1 0

0 0 1

>> i n d = f i n d (A , 2 , ’ l a s t ’ )

i n d = 5

(58)

find f¨ uggv´ eny

[row, col] = find(X)

Visszaadja az Xolyan elemeinek sor- ´es oszlop index´et, amelyek ´ert´eke nem nulla.

>>A = e y e ( 3 )

A =

1 0 0

0 1 0

0 0 1

>> [ r , c ] = f i n d (A)

r = 1 2 3

c = 1 2 3

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 58 / 74

(59)

find f¨ uggv´ eny

[row, col, value] = find(X)

Visszaadja az Xolyan elemeinek sor- ´es oszlop index´et, valamint ´ert´ek´et, amelyek ´ert´eke nem nulla.

>>A = e y e ( 3 ) ;

r = 1 2 3

c = 1 2 3

v = 1 1

(60)

sort ´ es sortrows f¨ uggv´ enyek

>> A = r o u n d ( 1 0 r a n d ( 3 ) )

A =

10 10 1

2 5 4

10 8 9

>> s o r t (A)

a n s =

2 5 1

10 8 4

10 10 9

>> s o r t r o w s (A , 1 )

a n s =

2 5 4

10 10 1

10 8 9

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 60 / 74

(61)

Aritmetikai oper´ atorok

Oper´ator N´ev MATLAB Megjegyz´esek f¨uggv´eny ´es p´eld´ak

+ T¨omb ´es

m´atrix

¨

osszead´as

plus(A,B) a+b,A+B, vagy a+A.

- T¨omb ´es

m´atrix kivon´as

minus(A,B) a-b,A-B,A-a.

.* T¨omb szorz´as times(A,B) C=A.*B,

C(I,J)=A(I,J)*B(I,J).

* M´atrix szorz´as mtimes(A,B) A*B, hagyom´anyos m´atrix szorz´as, vagya*A, m´atrix szorz´asa skal´arral.

(62)

Aritmetikai oper´ atorok

Oper´ator N´ev MATLAB Megjegyz´esek f¨uggv´eny and p´eld´ak

./ T¨omb jobb

oszt´asa

rdivide(A,B) C=A./B,

C(I,J)=A(I,J)/B(I,J).

.\ T¨omb bal oszt´asa

ldivide(A,B) C=A.\B,

C(I,J)=B(I,J)/A(I,J).

/ M´atrix

jobb oszt´a- sa

mrdivide(A,B) A/B k¨ozel azonos A*inv(B)-vel, de a sz´am´ıt´asi pontoss´agt´ol f¨ugg.

\ M´atrix bal

oszt´asa

mldivide(A,B) A\B k¨ozel azonos inv(A)*B-vel, de a sz´am´ıt´asi pontoss´agt´ol f¨ugg.

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 62 / 74

(63)

Aritmetikai oper´ atorok

Oper´ator N´ev MATLAB Megjegyz´esek f¨uggv´eny ´es p´eld´ak .^ T¨omb hat-

v´anyoz´asa

power(A,B) Ha C=A.^B, akkor

C(I,J)=A(I,J)^B(I,J).

^ M´atrix hat-

v´anyoz´asa

mpower(A,B) N´egyzetes m´atrix sz´am kitev˝on, vagy sz´am n´egyzetes m´atrix kitev˝on.

.’ Vektor ´es

m´atrix tran- szpon´al´asa

transpose(A) A.’.

’ Vektor ´es

m´atrix kom- plex kon- jug´altj´anak

ctranspose(A) A’.

(64)

Aritmetikai oper´ atorok

Oper´ator N´ev MATLAB Megjegyz´esek f¨uggv´eny and p´eld´ak + Un´aris plusz uplus(A) +A ugyanaz mint0+A.

- Un´aris m´ınusz uminus(A) -A ugyanaz mint 0-A vagy -1*A.

: Kett˝ospont Kor´abban t´argyaltuk.

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 64 / 74

(65)

K´ ep aritmetikai f¨ uggv´ enyek

F¨uggv´eny Le´ır´as

imadd Osszead k´¨ et k´epet, vagy egy konstanst hozz´aad egy k´ephez.

imsubtract Kivon k´et k´epet, vagy egy konstanst kivon egy k´epb˝ol.

immultiply Osszeszoroz k´¨ et k´epet, ahol a szorz´as az ¨osszetartoz´o elemek k¨oz¨ott hajt´odik v´egre, vagy megszoroz egy kon- stanssal egy k´epet.

imdivide Eloszt k´et k´epet, ahol az oszt´as az ¨osszetartoz´o ele- mek k¨oz¨ott hajt´odik v´egre, vagy eloszt egy k´epet egy sz´ammal.

imabsdiff Kisz´am´ıtja k´et k´ep k¨ul¨onbs´eg´enek abszolut´ert´ek´et.

imcomplement Egy k´ep komplementer´et ´all´ıtja el˝o.

imlincomb K´et vagy t¨obb k´ep line´aris kombin´aci´oj´at ´all´ıtja el˝o.

(66)

Osszehasonl´ıt´ ¨ o oper´ atorok

Oper´ator N´ev

< Kisebb

<= Kisebb vagy egyenl˝o

> Nagyobb

>= Nagyobb vagy egyenl˝o

== Egyenl˝o

~= Nem egyenl˝o

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 66 / 74

(67)

Osszehasonl´ıt´ ¨ o oper´ atorok

>> A=[1 2 3 ; 4 5 6 ; 7 8 9 ] ;

>> B=[0 2 4 ; 3 5 6 ; 3 4 9 ] ;

>> A==B

a n s =

0 1 0

0 1 1

0 0 1

>> A>=B a n s =

1 1 0

(68)

Logikai oper´ atorok

Oper´ator N´ev

& ES´

| VAGY

~ NEM

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 68 / 74

(69)

Logikai oper´ atorok

>> A=[1 2 0;0 4 5];

>> B=[1 -2 3;0 1 1];

>> A&B ans =

1 1 0

0 1 1

(70)

Logikai f¨ uggv´ enyek

F¨uggv´eny Megjegyz´esek

xor Azxorf¨uggv´eny pontosan akkor ad 1-et vissza, ha mindk´et param´eter k¨ul¨onb¨oz˝o.

all Az all f¨uggv´eny pontosan akkor ad 1-et vissza, ha a be- menet minden eleme nem nulla.

any Az any f¨uggv´eny pontosan akkor ad 0-´at vissza, ha a be- menet minden eleme nulla.

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 70 / 74

(71)

Logikai f¨ uggv´ enyek

>> A=[1 2 3;4 5 6];

>> B=[0 -1 1;0 0 1];

>> xor(A,B) ans =

1 0 0

1 1 0

>> all(A) ans =

1 1 1

>> any(A) ans =

1 1 1

>> all(B) ans =

0 0 1

(72)

Logikai f¨ uggv´ enyek

F¨uggv´eny Le´ır´as

iscell(C) Igaz, haCegy cella t¨omb.

iscellstr(s) Igaz, hasstringek cella t¨ombje.

ischar(s) Igaz, hasegy karakter string.

isempty(A) Igaz, haAegy ¨ures t¨omb,[].

isequal(A,B) Igaz, haA´esBelemei ´es dimenzi´oi azonosak.

isfield(S,’name’) Igaz, ha’name’egy mez˝oje az Sstrukt´ur´anak.

isfinite(A) IgazAazon elemein´el, amelyek v´egesek.

isinf(A) IgazAazon elemein´el, amelyek v´egtelenek.

isletter(A) Igaz A azon elemein´el, amelyek bet˝uk vagy

´ır´asjelek.

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 72 / 74

(73)

Logikai f¨ uggv´ enyek

F¨uggv´eny Le´ır´as

islogical(A) Igaz, ha Aegy logikai t¨omb.

ismember(A,B) IgazAazon elemein´el, amelyek B-nek is elemei.

isnan(A) IgazAazon elemein´el, amelyek NaN-ok.

isnumeric(A) Igaz, ha Aegy numerikus t¨omb.

isprime(A) IgazAazon elemein´el, amelyek pr´ımek.

isreal(A) Igaz A azon elemein´el, amelyeknek 0 a k´epzetes r´esz¨uk.

isspace(A) IgazAazon elemein´el, ahol nincs t´enyelges elem.

issparse(A) Igaz, ha Aegy ´un. ritkam´atrix.

isstruct(S) Igaz, ha Segy strukt´ura.

(74)

N´ eh´ any fontos v´ altoz´ o ´ es konstans

Szintaxis Ert´´ ek

ans Legutols´o v´alasz (v´altoz´o). Ha nem lett bal´ert´ek megadva, akkor MATLAB automatikusan az ans v´altoz´oban t´arolja az eredm´enyt.

eps Lebeg˝opontos relat´ıv pontoss´ag. Az 1.0 ´es az ˝ot k¨ovetkez˝o legkisebb sz´am k¨oz¨otti t´avols´ag.

i(vagyj) K´epzetes egys´eggy¨ok, pl.: 1+2i.

NaNvagy nan Azt jel¨oli, hogy az eredm´eny nem ´ertelmezett (pl.: 0/0).

pi 3.14159265358979

realmax A legnagyobb lebeg˝opontos sz´am, amit a sz´am´ıt´og´ep

´

abr´azolni tud.

realmin A legkisebb pozit´ıv lebeg˝opontos sz´am, amit a sz´am´ıt´og´ep ´abr´azolni tud.

computer A sz´am´ıt´og´ep t´ıpusa.

version MATLAB verzi´o, mint sz¨oveg.

Sergy´an (OE NIK) MATLAB 2012. febru´ar 17. 74 / 74

(75)

Intenzit´ as transzform´ aci´ ok megval´ os´ıt´ asa

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Zerubia, „A hierarchical Markov random field model for image classification,” in Proceedings of International Workshop on Image and Multidimensional Digital Signal Processing,

The measure of energy hybridization is not an ideal indicator since the specific energy of the fuel is much greater that the specific energy of the battery while the efficiency of

anatomy region recognition, deep learning, image classification, imaging informatics, medical image processing..

In terms of the modeling framework and model space selection, the current TAG MIMO framework and Matlab implementation offer enough flexibility for proposing a genetic

In recent years, the linear parameter-varying (LPV) mod- elling paradigm has received considerable attention from the identification and control community (e.g., see T´oth, 2010;

Going beyond the basic toolbox requires new problem-specific algorithmic techniques and hardness proofs with tricky gadget constructions. The lower bound technology on planar

Modellezni az alábbi ábrán látható két szegmenses síkbeli manipulátort a SCILAB Robotics Toolbox segítségével a képen látható módon.. 103 8.2 ábra

On Figure 3 the result of 1D continuous complex wavelet transform for time series of point from Oceania is presented.. This figure is built using Matlab’s Wavelet Toolbox, so we can