KÉPFELDOLGOZÁS. 10. gyakorlat: Morfológiai műveletek, alakjellemzők

Hasonló dokumentumok
Példák jellemzőkre: - minden pixelérték egy jellemző pl. neurális hálózat esetében csak kis képekre, nem invariáns sem a megvilágításra, sem a geom.

Minták automatikus osztályba sorolása a mintát leíró jellemzők alapján. Típusok: felügyelt és felügyelet nélküli tanuló eljárások

11. Alakzatjellemzők. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

Morfológia. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia Intézet

Koordinátageometria. , azaz ( ) a B halmazt pontosan azok a pontok alkotják, amelynek koordinátáira:

MATLAB Image Processing Toolbox

Az objektum leírására szolgálnak. Mire jók? Sokszor maga a jellemző az érdekes: Tömörítés. Objektumok csoportosítására

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

Baran Ágnes, Burai Pál, Noszály Csaba. Gyakorlat Differenciálegyenletek numerikus megoldása

Ujjszámlálás Matlab segítségével

Bináris képek feldolgozása. Digitális képelemzés alapvető algoritmusai. Bináris képek. Bináris képfeldolgozás témái. Csetverikov Dmitrij

Függvények ábrázolása

Morfológia. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia Intézet

Koordináta-geometria feladatok (emelt szint)

Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK EMELT SZINT Koordinátageometria

Mechatronika segédlet 3. gyakorlat

Láthatósági kérdések

KOORDINÁTA-GEOMETRIA

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Területi primitívek: Zárt görbék által határolt területek (pl. kör, ellipszis, poligon) b) Minden belső pont kirajzolásával (kitöltött)

Érettségi feladatok: Koordináta-geometria 1/5

MATLAB alapismeretek IV. Eredmények grafikus megjelenítése: vonalgrafikonok

Transzformációk. Grafikus játékok fejlesztése Szécsi László t05-transform

Mozgatható térlefedő szerkezetek

Érettségi feladatok Koordinátageometria_rendszerezve / 5

1 = 1x1 1+3 = 2x = 3x = 4x4

Multimédiás adatbázisok

SCILAB programcsomag segítségével

Transzformációk. Szécsi László

Képrekonstrukció 9. előadás

Matlab alapok. Baran Ágnes. Grafika. Baran Ágnes Matlab alapok Grafika 1 / 21

A médiatechnológia alapjai

Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével. MAJF21 Eisenberger András május 22. Konzulens: Dr.

3. Szűrés képtérben. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

Széchenyi István Egyetem

Cohen-Sutherland vágóalgoritmus

48. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY Megyei forduló HETEDIK OSZTÁLY MEGOLDÁSOK = = 2019.

Számítógépes Grafika mintafeladatok

Szerkezetvizsgálat II. c. gyakorlat

BME MOGI Gépészeti informatika 6.

Szemidenit optimalizálás és az S-lemma

Regresszió számítás. Tartalomjegyzék: GeoEasy V2.05+ Geodéziai Kommunikációs Program

Vektorok és koordinátageometria

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással

EGY ABLAK - GEOMETRIAI PROBLÉMA

mintásfal mintásfal :m :sz :dbjobbra :dbfel

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

A Quantimet 570C képelemző működése

TÉRINFORMATIKAI MODELLEZÉS TÉRINFORMATIKAI MODELLEZÉS ALAPFOGALMAI A VALÓSÁG MODELLEZÉSE

BÖLCS BAGOLY LEVELEZŐS MATEMATIKAVERSENY III. forduló MEGOLDÁSOK

Termék modell. Definíció:

Grafikonok automatikus elemzése

Kép mátrix. Feladat: Pap Gáborné-Zsakó László: Algoritmizálás, adatmodellezés 2/35

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

I. VEKTOROK, MÁTRIXOK

Mechatronika segédlet 10. gyakorlat

Speciális szükségletű felhasználók navigációjának vizsgálata különböző multimédiás alkalmazásokban

Baran Ágnes. Gyakorlat Halmazok, függvények, Matlab alapok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 34

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

Térinformatika. j informáci. ciós s rendszerek funkciói. Kereső nyelvek (Query Languages) Az adatok feldolgozását (leválogat

Fuzzy halmazok jellemzői

Időjárási csúcsok. Bemenet. Kimenet. Példa. Korlátok. Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny, 2-3. korcsoport

Egyszerű példaprogramok gyakorláshoz

Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Komputeralgebra Rendszerek

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉP SZINT Síkgeometria

Képfeldolgozás haladóknak Lovag Tamás Novák Gábor 2011


A felmérési egység kódja:

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

SZÁMÍTÓGÉPI GRAFIKA VÁGÁS

6. Modell illesztés, alakzatok

Utolsó módosítás: Feladat egy kétváltozós valós függvény kirajzolása különféle megjelenítési módszerekkel.

Érettségi feladatok: Trigonometria 1 /6

OKTV 2007/2008 Informatika II. kategória döntő forduló Feladatlap. Oktatási Hivatal

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei

Hálózat hidraulikai modell integrálása a Soproni Vízmű Zrt. térinformatikai rendszerébe

Programozási nyelvek 2. előadás

A 2010/2011 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának megoldása. II. (programozás) kategória

Digitális képfeldolgozás gyakorlat, Nappali tagozat 2018/2019 őszi félév, Beadandó feladat

Topológia-meg rz képm veletek és a vékonyítás új módszerei

Készítette:

Pénzügyi algoritmusok

MATLAB. 5. gyakorlat. Polinomok, deriválás, integrálás

Programozás 7.o Az algoritmus fogalma (ismétlés)

Mesh generálás. IványiPéter

Matematika szigorlat június 17. Neptun kód:

Numerikus Matematika

Koordináta-geometria feladatgyűjtemény

Konjugált gradiens módszer

Gyakorló feladatok 9.évf. halmaznak, írd fel az öt elemű részhalmazokat!. Add meg a következő halmazokat és ábrázold Venn-diagrammal:

BME MOGI Gépészeti informatika 15.

Kölcsönhatás diagramok

Nagy Gábor: Mapinfo. Tartalomjegyzék

: 1 4 : 1 1 A ) B ) C ) D ) 93

Átírás:

KÉPFELDOLGOZÁS 10. gyakorlat: Morfológiai műveletek, alakjellemzők

Min-max szűrők MATLAB-ban SE = strel(alak, paraméter(ek)); szerkesztőelem generálása strel( square, w): négyzet alakú, w méretű strel( rectangle, [m n]): téglalap alakú, m n méretű strel( disk, r): kör alakú, r sugarú strel( line, len, deg): vonal alakú, len hosszú, deg irányú imdilate(img, SE): dilatáció az SE szerkesztőelemmel imerode(img, SE): erózió az SE szerkesztőelemmel

Nyitás és zárás MATLAB-ban imopen(img, SE): morfológiai nyitás, azaz erózió és dilatáció egymásutánja az SE szerkesztőelemmel imclose(img, SE): morfológiai zárás, azaz dilatáció és erózió egymásutánja az SE szerkesztőelemmel

Morfológiai műveletek (példa) img = imread('binimg.png ); img = img / 255; se = strel('disk', 3); img_erode = imerode(img, se); img_dilate = imdilate(img, se); img_open = imopen(img, se); img_close = imclose(img, se);

Morfológiai műveletek (példa) img = imread('binimage.png ); img = img / 255; se = strel('disk', 3); img_open = imopen(img, se); img_open_close = imclose(img_open, se);

Váz Az objektum általános, egyszerűsített formája A meghatározandó struktúra vékony (1 pixel vastag szegmensekből áll), topológiailag ekvivalens a kiindulási képpel, az objektumok közepén helyezkedik el.

A váz egy lehetséges meghatározása

Vékonyítás A front-terjedés modellezése: topológia- és alakmegőrző iteratív redukció

Vázkijelölés MATLAB-ban Kétféle beépített vékonyító algoritmus: bwmorph(bw, skel, Inf); bwmorph(bw, thin, Inf); 3. paraméter: hány iterációig menjen, Inf esetén addig fut, amíg a vázhoz nem jutunk A vázon kijelölhető speciális pontok: bwmorph(skel, endpoints ): végpontok bwmorph(skel, branchpoints ): elágazási pontok

Váz (példa) skeleton1 = bwmorph(img_open_close, 'skel', Inf); skeleton2 = bwmorph(img_open_close, 'thin', Inf); figure('name', 'Kétféle váz', 'NumberTitle', 'off'); imshow([skeleton1, skeleton2]);

Elágazási pontok, végpontok (példa) branch = bwmorph(skeleton2, 'branchpoints'); ends = bwmorph(skeleton2, 'endpoints'); figure('name', 'A váz elágagási pontjai és végpontjai',... 'NumberTitle', 'off'); imshow([branch,ends]);

Határvonal Olyan objektumpontok (fehér pontok, 1 -esek) halmaza, amelyeknek legalább az egyik 4- szomszédjuk háttérpont (fekete pont, 0 -ás). N W p E N==0 or E==0 or S==0 or W==0 S Határvonal-generálás MATLAB-ban: bwmorph(bw, remove );

Határvonal (példa) border = bwmorph(img_open_close, 'remove'); figure('name', 'Határvonal', 'NumberTitle', 'off'); imshow(border);

A struct típus MATLAB-ban Struktúratömb: különböző nevű elemekkel (mezőkkel) rendelkezhet, a mezők különböző adattípusúak lehetnek. objektum(1).nev = 'első'; objektum(1).vektor = [1 2 3 4 5]; objektum(2).nev = 'második'; objektum(2).vektor = [10 20]; objektum(3).nev = 'harmadik'; objektum(3).vektor = [2 3 5 7];

A regionprops függvény stats = regionprops(bw,properties): BW: bináris kép, properties: egy vagy több alakleíró neve (sztringek vesszővel elválasztva) stats: az alakleírókat tartalmazó struktúratömb a mezők neve az alakleírók nevével egyezik Az n-edik objektum X nevű jellemzője: stats(n).x A cat függvénnyel mátrixra konvertálható: M = cat(1, stats.x) M mátrix n-edik sorába kerül a stats(n).x

Terület és kerület Terület: objektumpixelek száma regionprops(bw, area ); Kerület: a határ hossza (közelítő érték) regionprops(bw, perimeter );

Terület és kerület (példa) prop = regionprops(img_open_close, 'Perimeter'); P = cat(1, prop.perimeter) prop = regionprops(img_open_close, 'Area'); A = cat(1, prop.area) P = A = 144.8270 385.5260 215.4610 146.1570 213.8750 365.0140 181.0240 34.0400 1238 2127 1372 687 1052 2267 1750 109

Befoglaló téglalap Az objektumot tartalmazó minimális területű téglalap Vízszintes helyzetű befoglaló téglalapok paramétereinek számítása: regionprops(bw, BoundingBox ); Négyelemű vektorként tárolódnak: [ bal felső sarok y koordinátája, bal felső sarok x koordinátája, szélesség (oszlopok száma), magasság (sorok száma) ]

Befoglaló téglalap prop = regionprops(img_open_close, 'BoundingBox'); BB = cat(1, prop.boundingbox); figure imshow(img_open_close); for i=1:size(bb,1) rectangle('position', BB(i,:),'EdgeColor','g', 'LineWidth', 2, 'LineStyle', '-'); Az i-edik objektum befoglaló téglalapjának rárajzolása az ábrára zöld színnel, 2 pixel vastagon, folytonos vonallal

Befoglaló téglalap imcrop(img, [y x w h]): külön mátrixba kinyeri az img azon w széles és h magas téglalap által határolt részét, melynek bal felső sarka az (x,y) pontban van prop = regionprops(img_open_close, 'BoundingBox'); BB = cat(1, prop.boundingbox); cropped = imcrop(img_open_close, BB(1,:)); figure, imshow(cropped); Az első objektum befoglaló téglalapja által határolt rész kinyerése

Súlypont (vagy centroid) Az objektumpixelek y és x koordinátáinak átlagaként kapjuk regionprops(bw, Centroid ) [y,x] alakú vektorként tárolódik az (x,y) koordinátájú centroid

Súlypont (példa) prop = regionprops(img_open_close,'centroid'); C = cat(1, prop.centroid); figure, imshow(img_open_close); hold on; plot(c(:,1),c(:,2), 'b*'); Súlypontok rárajzolása az ábrára kék csillagokként

Konvex burok Az alakzatot tartalmazó minimális konvex alakzat: bwconvhull(bw, method) BW: bináris kép method: union vagy objects union : az objektumok együttesének konvex burkát számolja (egyetlen konvex burok) objects : objektumonként külön-külön konvex burkot számol

Konvex burok CH1 = bwconvhull(img_open_close, 'objects'); CH2 = bwconvhull(img_open_close, 'union'); imshow([ch1,ch2]);

Objektumok címkézése L = bwlabel(bw) BW kép mindegyik objektuma egy sorszámot kap, az n-edik objektum pixelei n intenzitásúak az L képen

Címkézés (példa) labelled = bwlabel(img_open_close); imshow(labelled, []); display('objektumok száma:'); display(max(max(labelled))); figure, imshow(labelled == 3); Objektumok száma: ans = 8

Erózió implementációja kereszt alakú szerk. elemre p function result = bwerode(img) [height,width] = size(img); padimg = false(height+2, width+2); padimg(2:height+1,2:width+1) = img; result = padimg; for i=2:height+1 for j=2:width+1 if padimg(i-1,j)==0 padimg(i+1,j)==0... padimg(i,j-1)==0 padimg(i,j+1)==0 result(i,j) = 0; end end end result = result(2:height+1, 2:width+1); end Megjegyés: ugyanilyen szerkesztőelemű dilatáció hasonlóképpen implementálható, csak a 0-ákat 1-esekre kell lecserélni

Határvonal implementációja p function result = bwborder(img) [height,width] = size(img); padimg = false(height+2, width+2); padimg(2:height+1,2:width+1) = img; result = padimg; for i=2:height+1 for j=2:width+1 if padimg(i,j)==1 &... padimg(i-1,j)==1 & padimg(i+1,j)==1 &... padimg(i,j-1)==1 & padimg(i,j+1)==1 result(i,j) = 0; end end end result = result(2:height+1, 2:width+1); end