Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 10
  • Metode segmentacije slike. Proučavanje metoda segmentacije na slikama modela

Metode segmentacije slike. Proučavanje metoda segmentacije na slikama modela

Ovog ljeta sam imao sreću da dobijem ljetnu praksu u kompaniji Itseez . Zamoljen sam da istražim savremenim metodama, što bi nam omogućilo da istaknemo lokacije objekata na slici. U osnovi, takve metode se oslanjaju na segmentaciju, tako da sam svoj rad započeo upoznavanjem s ovim područjem kompjuterski vid.
Segmentacija slike - Ovo je podjela slike na mnogo područja koja je pokrivaju. Segmentacija se koristi u mnogim oblastima, na primjer, u proizvodnji za ukazivanje na nedostatke prilikom sklapanja dijelova, u medicini za primarnu obradu slike, a također i za sastavljanje karata terena sa satelitskih snimaka. Za one koji su zainteresovani da razumeju kako takvi algoritmi funkcionišu, dobrodošli u cat. Pogledaćemo nekoliko metoda iz biblioteke kompjuterskog vida OpenCV .

Algoritam segmentacije po slivu (WaterShed)


Algoritam radi sa slikom kao funkcijom dvije varijable f=I(x,y) , Gdje x,y – koordinate piksela:


Vrijednost funkcije može biti intenzitet ili veličina gradijenta. Za najveći kontrast, možete uzeti gradijent sa slike. Ako duž ose OZ Prilikom iscrtavanja apsolutne vrijednosti nagiba, grebeni se formiraju na mjestima gdje postoji razlika u intenzitetu, a ravnice se formiraju u homogenim područjima. Nakon pronalaženja minimuma funkcije f , u toku je proces punjenja “vodom” koji počinje od globalnog minimuma. Čim nivo vode dostigne sljedeći lokalni minimum, počinje se puniti vodom. Kada dva regiona počnu da se spajaju, pravi se particija koja sprečava spajanje regiona. Voda će nastaviti da raste sve dok regioni ne budu odvojeni samo veštački izgrađenim pregradama (slika 1).




Fig.1. Ilustracija procesa punjenja vodom

Takav algoritam može biti koristan ako slika mali broj lokalni minimumi, ali u slučaju velikog broja njih dolazi do pretjerane podjele na segmente. Na primjer, ako direktno primijenimo algoritam na Sl. 2, dobijamo puno malih detalja na Sl. 3.


Rice. 2. Originalna slika


Rice. 3. Slika nakon segmentacije po algoritmu WaterShed

Kako se nositi sa malim detaljima?

Da biste se riješili viška sitnih detalja, možete definirati područja koja će biti vezana za najbliži minimum. Particija će biti izgrađena samo ako se spoje dva regiona sa markerima, inače će se ovi segmenti spojiti. Ovaj pristup uklanja efekat suvišne segmentacije, ali zahtijeva prethodnu obradu slike kako bi se odabrali markeri koji se mogu interaktivno označiti na slici na Sl. 4, 5.


Rice. 4. Slika sa markerima


Rice. 5. Slika nakon segmentacije po algoritmu WaterShed koristeći markere

Ako želite djelovati automatski bez intervencije korisnika, možete koristiti, na primjer, funkciju findContours() za isticanje markera, ali i ovdje, radi bolje segmentacije, male konture treba isključiti. 6., na primjer, uklanjajući ih duž praga duž dužine konture. Ili koristite eroziju s dilatacijom kako biste uklonili male detalje prije nego što istaknete konture.


Rice. 6. Kao markeri korištene su konture dužine iznad određenog praga


Kao rezultat algoritma dobijamo masku sa segmentiranom slikom, gdje su pikseli jednog segmenta označeni istom oznakom i formiraju povezano područje. Glavni nedostatak ovog algoritma je korištenje postupka predobrade za slike sa veliki iznos lokalni minimumi (slike sa složenom teksturom i obiljem različitih boja).

Mat slika = imread("coins.jpg", CV_LOAD_IMAGE_COLOR); // odabir kontura Mat imageGray, imageBin; cvtColor(image, imageGray, CV_BGR2GREY); prag(imageGray, imageBin, 100, 255, THRESH_BINARY); std::vector >konture; std::vector hijerarhija findContours(imageBin, konture, hijerarhija, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE); Markeri za mat (image.size(), CV_32SC1); markeri = Skalarni::all(0); int compCount = 0; for(int idx = 0; idx >= 0; idx = hijerarhija, compCount++) ( drawContours(markeri, konture, idx, Scalar::all(compCount+1), -1, 8, hijerarhija, INT_MAX); ) std: :vektor colorTab(compCount); for(int i = 0; i< compCount; i++) { colorTab[i] = Vec3b(rand()&255, rand()&255, rand()&255); } watershed(image, markers); Mat wshed(markers.size(), CV_8UC3); for(int i = 0; i < markers.rows; i++) { for(int j = 0; j < markers.cols; j++) { int index = markers.at(i, j); if(indeks == -1) washed.at (i, j) = Vec3b(0, 0, 0); inače ako (indeks == 0) oprano.at (i, j) = Vec3b(255, 255, 255); ostalo oprano.at (i, j) = colorTab; ) ) imshow("transformacija vododjelnice", wshed); čekajKey(0);

Algoritam segmentacije MeanShift

MeanShift grupiše objekte sa sličnim karakteristikama. Pikseli sa sličnim karakteristikama se kombinuju u jedan segment, a izlaz je slika sa homogenim područjima.


Na primjer, kao koordinate u prostoru karakteristika možete odabrati koordinate piksela (x, y) i komponente RGB piksela. Ucrtavanjem piksela u prostoru obeležja možete videti nakupine na određenim mestima.

Rice. 7. (a) Pikseli u prostoru 2D karakteristika. (b) Pikseli koji stignu do istog lokalnog maksimuma obojeni su istom bojom. (c) - funkcija gustoće, maksimumi odgovaraju mjestima najveće koncentracije piksela. Slika je preuzeta iz članka.

Da bismo olakšali opisivanje kondenzacije tačaka, uvodimo funkcija gustine :
– vektor karakteristika i -ti piksel, d - broj znakova, N - broj piksela, h - parametar odgovoran za glatkoću je kernel. Maksimumi funkcije se nalaze u tačkama kondenzacije piksela slike u prostoru obeležja. Pikseli koji pripadaju istom lokalnom maksimumu se kombinuju u jedan segment. Ispostavilo se da da biste pronašli kojem od centara koncentracije piksel pripada, morate koračati duž gradijenta kako biste pronašli najbliži lokalni maksimum.

Gradijentna procjena iz funkcije gustoće

Vektor srednjeg pomaka može se koristiti za procjenu gradijenta funkcije gustoće
Epanechnikov kernel se koristi kao kernel u OpenCV:


- ovo je volumen d -dimenzionalna sfera sa jediničnim poluprečnikom.


znači da zbir ne prelazi sve piksele, već samo one koji padaju u sferu poluprečnika h centriran u tački gdje vektor pokazuje u prostoru karakteristika. Ovo je uvedeno posebno kako bi se smanjio broj proračuna. - volumen d -dimenzionalna sfera poluprečnika h. Možete posebno postaviti radijus za prostorne koordinate i posebno radijus u prostoru boja. - broj piksela koji padaju u sferu. Veličina može se smatrati procjenom vrijednosti u regionu.


Stoga je za hodanje duž gradijenta dovoljno izračunati vrijednost - vektor srednjeg pomaka. Treba imati na umu da ako odaberete drugo jezgro, srednji vektor pomaka će izgledati drugačije.


Prilikom odabira koordinata piksela i intenziteta boja kao karakteristika, pikseli sa sličnim bojama i koji se nalaze blizu jedni drugima biće kombinovani u jedan segment. U skladu s tim, ako odaberete drugi vektor karakteristika, tada će se pikseli kombinirati u segmente pomoću njega. Na primjer, ako uklonimo koordinate iz obilježja, tada će se nebo i jezero smatrati jednim segmentom, jer bi pikseli ovih objekata u prostoru obilježja spadali u jedan lokalni maksimum.

Ako se objekt koji želimo odabrati sastoji od područja koja se uvelike razlikuju po boji, onda MeanShift neće moći kombinovati ove regije u jednu, a naš objekat će se sastojati od nekoliko segmenata. Ali dobro je nositi se s objektom ujednačene boje na šarolikoj pozadini. Više MeanShift koristi se prilikom implementacije algoritma za praćenje pokretnih objekata.

Primjer koda za pokretanje algoritma:

Mat slika = imread("strawberry.jpg", CV_LOAD_IMAGE_COLOR); Mat imageSegment; int spatialRadius = 35; int colorRadius = 60; int pyramidLevels = 3; pyrMeanShiftFiltering(image, imageSegment, spatialRadius, colorRadius, pyramidLevels); imshow("MeanShift", imageSegment); čekajKey(0);
rezultat:


Rice. 8. Originalna slika


Rice. 9. Nakon segmentacije po algoritmu MeanShift

Algoritam segmentacije FloodFill

Korišćenjem FloodFill(metoda popunjavanja ili “poplavljanja”) možete odabrati regije ujednačene boje. Da biste to učinili, morate odabrati početni piksel i postaviti interval za promjenu boje susjednih piksela u odnosu na originalni. Interval takođe može biti asimetričan. Algoritam će kombinirati piksele u jedan segment (ispuniti ih istom bojom) ako spadaju u specificirani raspon. Izlaz će biti segment ispunjen određenom bojom i njegovom površinom u pikselima.

Ovaj algoritam može biti koristan za popunjavanje područja s malim razlikama u boji s ujednačenom pozadinom. Jedan slučaj upotrebe FloodFill Možda je moguće identificirati oštećene rubove objekta. Na primjer, ako, ispunjavanjem homogenih područja određenom bojom, algoritam ispunjava i susjedne regije, tada je narušen integritet granice između ovih područja. Na slici ispod možete vidjeti da je očuvan integritet granica popunjenih područja:

Rice. 10, 11. Originalna slika i rezultat nakon popunjavanja nekoliko područja

A sljedeće slike prikazuju radnu opciju FloodFill ako je jedna od granica na prethodnoj slici oštećena.


Rice. 12, 13. Ilustracija rada FloodFill kada je narušen integritet granice između ispunjenih područja

Primjer koda za pokretanje algoritma:

Mat slika = imread("cherry.jpg", CV_LOAD_IMAGE_COLOR); Point startPoint; startPoint.x = image.cols/2; startPoint.y = image.rows/2; Skalarni loDiff(20, 20, 255); Skalarni upDiff(5, 5, 255); Skalarni fillColor(0, 0, 255); int susjedi = 8; Rect domena; int area = floodFill(slika, startPoint, fillColor, &domain, loDiff, upDiff, susjedi); pravougaonik(slika, domen, skalar(255, 0, 0)); imshow("floodFill segmentacija", slika); čekajKey(0);
Na varijablu području Zabilježit će se broj “popunjenih” piksela.
rezultat:


Algoritam segmentacije GrabCut

Ovo je interaktivni algoritam za odabir objekata, razvijen kao prikladnija alternativa magnetnom lasu (da bi odabrao objekt, korisnik je trebao pratiti njegov obris pomoću miša). Da bi algoritam funkcionirao, dovoljno je objekt zajedno sa dijelom pozadine zatvoriti u pravougaonik (grab). Objekt će biti automatski segmentiran (izrezan).


Segmentacija može biti teška ako unutar graničnog okvira postoje boje koje se pojavljuju velike količine ne samo u objektu, već iu pozadini. U tom slučaju možete dodati dodatne oznake objekta (crvena linija) i pozadinu (plava linija).


Razmotrimo ideju algoritma. Osnova je GraphCut interaktivni algoritam segmentacije, gdje korisnik treba da stavi markere na pozadinu i na objekt. Slika se tretira kao niz .Z - vrijednosti intenziteta piksela, N -ukupan broj piksela. Za odvajanje objekta od pozadine, algoritam određuje vrijednosti elemenata niza transparentnosti i može uzeti dvije vrijednosti ako = 0 , tada piksel pripada pozadini if = 1 , zatim objekt. Interni parametar sadrži histogram distribucije intenziteta prednji plan i histogram u pozadini:
.
Zadatak segmentacije je pronalaženje nepoznatih. Energetska funkcija se smatra:

Štaviše, minimalna energija odgovara najboljoj segmentaciji.


V(a,z) - pojam je odgovoran za vezu između piksela. Zbir ide preko svih parova piksela koji su susjedi, dis(m,n) - Euklidska udaljenost. je odgovoran za učešće parova piksela u ukupnom if a n = a m , tada ovaj par neće biti uzet u obzir.
- odgovoran je za kvalitet segmentacije, tj. odvajanje objekta od pozadine.

Nakon što je pronađen globalni minimum energetske funkcije E , dobijamo niz transparentnosti. Da bi se funkcija energije minimizirala, slika se opisuje kao graf i traži se minimalni rez grafa. Za razliku od GraphCuta u algoritmu GrabCut pikseli se razmatraju u RGB prostoru, tako da se Gaussov model mješavine (GMM) koristi za opisivanje statistike boja. Algoritamski rad GrabCut možete vidjeti pokretanjem OpenCV uzorka

Jedan od glavnih zadataka obrade i analize slike je segmentacija, tj. dijeljenje slike na područja za koja je ispunjen određeni kriterij homogenosti, na primjer, isticanje područja približno iste svjetline na slici. Koncept područja slike koristi se za definiranje koherentne grupe elemenata slike koji imaju određene zajednička karakteristika(imovina).
Jedan od glavnih i jednostavne načine- ovo je konstrukcija segmentacije pomoću praga. Prag je znak (osobina) koji pomaže da se željeni signal podijeli u klase. Operacija podjele praga je upoređivanje vrijednosti svjetline svakog piksela na slici sa datu vrijednost prag.
Binarizacija

Operacija postavljanja praga koja rezultira binarnom slikom naziva se binarizacija. Svrha operacije binarizacije je radikalno smanjiti količinu informacija sadržanih u slici. U procesu binarizacije, originalna polutonska slika, koja ima određeni broj nivoa svjetline, pretvara se u crno-bijela slika, čiji pikseli imaju samo dvije vrijednosti – 0 i 1

Postavljanje praga slike može se izvršiti na različite načine.

Binarizacija sa nižim pragom
Binarizacija sa nižim pragom
Binarizacija s nižim pragom je najjednostavnija operacija koja koristi samo jednu vrijednost praga:

Sve vrijednosti postaju 1 umjesto kriterija, in u ovom slučaju 255 (bijelo) i sve vrijednosti piksela (amplitude) koje su veće od praga t - 0 (crno).

Binarizacija sa gornjim pragom
Ponekad možete koristiti varijantu prve metode, koja proizvodi negativ slike dobivene procesom binarizacije. Operacija binarizacije sa gornjim pragom:

Binarizacija sa dvostrukim ograničenjem
Da bi se istakla područja u kojima vrijednosti svjetline piksela mogu varirati unutar poznatog raspona, uvodi se binarizacija s dvostrukim ograničenjem (t 1
Moguće su i druge varijacije sa pragovima, gdje se samo dio podataka propušta (filter srednjeg opsega).

Nepotpuno postavljanje praga
Ova transformacija proizvodi sliku koju je možda lakše dalje analizirati jer postaje lišena pozadine sa svim detaljima prisutnim na originalnoj slici.

Transformacija praga na više nivoa
Ova operacija formira sliku koja nije binarna, već se sastoji od segmenata različite svjetline.

Što se tiče binarizacije, to je u suštini to. Iako možemo dodati da postoji globalni, koji se koristi za cijelu sliku, a postoji i lokalni, koji hvata dio slike (slike).

Lokalni prag
Otsa metoda
Metoda koristi histogram distribucije vrijednosti svjetline piksela rasterske slike. Histogram se konstruiše korišćenjem vrednosti p i =n i /N, gde je N ukupan broj piksela na slici, n i broj piksela sa nivoom osvetljenosti i. Raspon svjetline je podijeljen u dvije klase korištenjem praga nivoa svjetline k,k - cjelobrojne vrijednosti od 0 do L. Svaka klasa odgovara relativnim frekvencijama ω 0 ω 1:

Prosječni nivoi za svaku od dvije klase slika:
Zatim se izračunava maksimalna vrijednost za procjenu kvaliteta podjele slike na dva dijela:
gdje je (σ cl)2=ω 0 ω 1 (μ 1 -μ 0) 2 međuklasna varijansa, a (σ total) 2 je ukupna varijansa za cijelu sliku.

Prag zasnovan na gradijentu svjetline slike
Pretpostavimo da se analizirana slika može podijeliti u dvije klase – objekte i pozadinu. Algoritam za izračunavanje granične vrijednosti sastoji se od sljedeća 2 koraka:
1. Modul gradijenta svjetline se određuje za svaki piksel
Slike

2. Izračun praga:
Ukupno
Rado sam sa vama podijelio ono što sam pronašao; u budućnosti ću, ako uspijem i budem imao vremena, pokušati implementirati neke od algoritama. Ovo je samo mali dio svega što danas postoji, ali rado ću podijeliti i ovo.
Hvala vam na pažnji.

Pošaljite svoj dobar rad u bazu znanja je jednostavno. Koristite obrazac ispod

Studenti, postdiplomci, mladi naučnici koji koriste bazu znanja u svom studiranju i radu biće vam veoma zahvalni.

Objavljeno na http://www.allbest.ru/

Ministarstvo obrazovanja i nauke Ruske Federacije

Rjazanski državni radiotehnički univerzitet

IIBMT Department

Rad na kursu

Metode obrade slike. Segmentacija

Završeno čl. gr. 432M:

Aleshin S.I.

Provjerio doc. odjelu IIBMT:

Kaplan M.B.

Rjazanj 2014

Uvod

1. Prezentacija slika

3. Formati slika

4. Vrste slika

5.1 Promjena kontrasta

5.2 Uglađivanje šuma

5.3 Isticanje granica

5.4 Filtriranje medijana

5.5 Segmentacija slike

5.5.3 Ocrtavanje

5.5.7 Metode rezanja grafikona

6. Opis funkcija

7. Algoritamsko testiranje

Zaključak

Aplikacija

Uvod

Sredinom 20. stoljeća obrada slike je uglavnom bila analogna i obavljana je pomoću optičkih uređaja. Takve optičke tehnike su i danas važne, u oblastima kao što je holografija. Međutim, sa dramatičnim povećanjem performansi računara, ove metode su sve više zamenjene metodama digitalne obrade slike. Metode digitalne obrade slike općenito su preciznije, pouzdanije, fleksibilnije i lakše za implementaciju od analognih metoda. Digitalna obrada slike u velikoj meri koristi specijalizovani hardver kao što su procesori cevovoda instrukcija i višeprocesorski sistemi. Ovo posebno važi za sisteme za obradu video zapisa. Obrada slika se takođe izvodi pomoću kompjuterskog matematičkog softvera, na primer, MATLAB, Mathcad, Maple, Mathematica, itd. Za to koriste i osnovne alate i pakete ekstenzija za obradu slika.

Interes za metode obrade digitalne slike proizilazi iz dvije glavne oblasti njihove primjene, a to su poboljšanje slike za poboljšanje ljudske vizualne percepcije i obrada slike za skladištenje, prijenos i prezentaciju u autonomnim sistemima strojnog vida.

Jedna od najsloženijih metoda digitalne obrade slike je segmentacija slike. Segmentacija je proces podjele digitalne slike na nekoliko segmenata koji se međusobno razlikuju po elementarnim karakteristikama, kao što su svjetlina, boja, tekstura, oblik. Svrha segmentacije je pojednostaviti i promijeniti reprezentaciju slike kako bi je bila jednostavnija i lakša za analizu. Nepravilan odabir segmenata na slici može u konačnici utjecati na kvalitetu prepoznavanja, pa čak i učiniti nemogućim. Stoga je zadatak segmentacije izuzetno važan i vrlo relevantan.

Postoji mnogo metoda segmentacije slike. Konačni rezultat često je određen preciznošću segmentacije, tako da prilikom odabira određene metode segmentacije morate obratiti veliku pažnju na pouzdanost algoritma. Međutim, ne postoji jedinstven, opšte prihvaćen pristup koji bi bio u osnovi većine algoritama. Također ne postoji jedinstveni algoritam koji bi omogućio prihvatljivu segmentaciju za bilo koju sliku. To je jedna od poteškoća segmentacije i to je razlog velikog broja različitih pristupa rješavanju ovih problema obrade slike.

Uprkos važnosti ove predmetne oblasti, napisano je relativno malo knjiga koje se bave i teorijskim osnovama i softverskim aspektima rješavanja osnovnih problema segmentacije slike.

Ovaj rad prikazuje osnovne metode obrade digitalnih slika. Posebna pažnja posvećena je metodama segmentacije slike. Program za jednu od metoda segmentacije implementiran je pomoću MatLAB aplikacijskog paketa.

1. Prezentacija slika

Osnovna pitanja u teoriji obrade slike su pitanja: formiranja, unosa, predstavljanja u kompjuteru i vizualizacije. Oblik površine može se opisati kao funkcija udaljenosti F(x, y) od površine do točke slike s koordinatama x i y. Uzimajući u obzir da svjetlina tačke na slici ovisi isključivo o svjetlini odgovarajuće površine, možemo pretpostaviti da vizualna informacija odražava stanje svjetline ili transparentnosti svake tačke sa određenim stepenom tačnosti. Tada se slika shvata kao ograničena funkcija dvije prostorne varijable f(x, y), definirane na ograničenoj pravokutnoj ravni Oxy i koja ima određeni skup svojih vrijednosti. Na primjer, crno-bijela fotografija može se predstaviti kao f(x, y)?0, gdje su 0?x?a, 0?y?b i f(x, y) svjetlina (ponekad se naziva optička gustina ili bjelina ) slike u tački (x, y); a - širina okvira, b - visina okvira.

Zbog činjenice da je digitalna memorija računara sposobna da skladišti samo nizove podataka, slika se prvo pretvara u neki numerički oblik (matricu). Slike se unose u memoriju računara pomoću video senzora. Video senzor pretvara optičku distribuciju svjetline slike u električne signale, a zatim u digitalne kodove. Budući da je slika funkcija dvije prostorne varijable x i y, a električni signal funkcija jedne varijable t (vrijeme), za konverziju se koristi skeniranje. Na primjer, kada se koristi televizijska kamera, slika se čita red po red, a unutar svake linije ovisnost svjetline o prostornoj koordinati x pretvara se u proporcionalnu ovisnost amplitude električnog signala o vremenu t. Prijelaz s kraja prethodnog reda na početak sljedećeg se događa gotovo trenutno.

Unos slika u računar neizbežno uključuje uzorkovanje slika duž prostornih koordinata x i y i kvantizaciju vrednosti osvetljenosti u svakoj diskretnoj tački. Diskretizacija se postiže korišćenjem koordinatne mreže formirane od linija paralelnih sa x i y osama kartezijanskog koordinatnog sistema. Na svakom čvoru takve rešetke vrši se očitavanje svjetline ili transparentnosti nosioca vizualno percipirane informacije, koja se zatim kvantizira i predstavlja u memoriji računala. Element slike dobijen u procesu uzorkovanja slike naziva se piksel. Za kvalitetan prikaz slike u polutonu dovoljno je 28 = 256 nivoa kvantizacije, tj. 1 piksel slike je kodiran sa 1 bajtom informacije.

Glavne karakteristike slika su:

1. Veličina slike;

2. Dubina boje;

3. Dozvola.

2. Kodiranje slike u boji

Boja je pojava koja nastaje interakcijom svjetlosti, objekta i uređaja (posmatrača).

Eksperimentalno je utvrđeno da se svaka boja može predstaviti kao zbir određenih količina tri linearno nezavisne boje.

Tri linearno nezavisne boje nazivaju se primarne boje.

Oni definišu koordinatni sistem boja (CCS) ili šemu boja, tj. skup primarnih boja za dobijanje preostalih boja.

Šeme boja su podijeljene u dvije varijante: sheme boja od emitirane svjetlosti i od reflektirane svjetlosti.

RGB sistem.

Njegove primarne boje su crvena sa talasnom dužinom od 700 nm, zelena sa talasnom dužinom od 546,1 nm i plava sa talasnom dužinom od 435,8 nm. RGB sistem je aditivni.

U ovom slučaju, ova ili ona boja se dobija dodavanjem primarnih boja.

CMYK sistem.

Ovaj sistem se koristi za formiranje boja obojenih nesvetlećih objekata koji apsorbuju deo spektra osvetljene bele svetlosti i reflektuju ostatak zračenja.

CMYK sistem je osnova za štampu u boji.

Zasnovan je na subtraktivnom CMY modelu (cijan - cijan, magenta - magenta, žuta) - modelu oduzimanja boja. Ovdje još uvijek postoje tri osnovne boje.

Da bi se poboljšao kvalitet štampane slike, sistemu je dodata crna boja.

HSB sistem.

Ovaj sistem se zasniva na upotrebi nijanse ili nijanse, zasićenosti i svetlosti. Nijansa karakterizira specifičnu nijansu boje, zasićenost - njen relativni intenzitet, svjetlinu boje - količinu crne nijanse za stvaranje tamnije slike.

Varijacija ovog sistema je HSL šema.

3. Formati slika

Danas je u upotrebi veliki broj različitih formata grafičkih datoteka. Najrasprostranjeniji formati su TIFF, GIF, JPEG, PNG i BMP.

TIFF (Tagget Image Format) format je jedan od najpouzdanijih i najraznovrsnijih formata za pohranjivanje visokokvalitetnih skeniranih slika u boji. Može koristiti kompresiju pomoću LZW algoritma, tj. odnosi se na formate za skladištenje slika bez gubitaka.

GIF (Graphics Interchange Format) format ima paletu boja od 256 boja i koristi LZW algoritam bez gubitaka za kompresiju. Ako je originalni broj boja veći od 256, tada će se neke informacije o boji izgubiti.

JPEG (Join Photographers Expert Group) format je baziran na istoimenom algoritmu kompresije slike. To je algoritam kompresije s gubicima i dizajniran je za pohranjivanje slika u punoj boji s visokim omjerom kompresije. Kada koristite format, možete kontrolirati parametar kvalitete od 0 (maksimalna kompresija) do 100 (maksimalni kvalitet). Omjer kompresije, ovisno o kvaliteti, je od 10 do 1000. Ovaj format se najčešće koristi za pohranjivanje fotografija u punoj boji koje nisu namijenjene za daljnju obradu.

PNG format je rasterski format za pohranjivanje grafičkih informacija koji koristi kompresiju bez gubitaka koristeći algoritam Deflate. PNG format je dizajniran da zamijeni stariji i jednostavniji GIF format, te u određenoj mjeri zamijeni mnogo složeniji TIFF format. PNG format je prvenstveno pozicioniran za upotrebu na Internetu i uređivanje grafike. Ima sljedeće glavne prednosti u odnosu na GIF: gotovo neograničen broj boja na slici; opciona podrška za alfa kanal; mogućnost gama korekcije; dvodimenzionalno isprepleteno skeniranje.

BMP (BitMaP) format je jedan od izvornih rasterskih formata Windows operativnog sistema. Pogodan je za pohranjivanje slika kako u indeksiranom obliku s paletom do 256 boja, tako i u obliku RGB slika u punoj boji sa dubinom boje od 24 bita. Moguće je koristiti RLE algoritam kompresije.

4. Vrste slika

4.1 Dvoslojna (ili monohromatska) slika

U ovom slučaju, svi pikseli mogu imati samo dvije vrijednosti, koje se obično nazivaju crna (binarna jedinica ili glavna boja) i bijela (binarna nula, ili boja pozadine).

Svaki piksel na takvoj slici je predstavljen jednim bitom, tako da je to najjednostavniji tip slike.

1. Polutonska slika. Takva slika sa skalom od 2n nivoa je sastavljena od n-bitnih slojeva.

2. Slika u boji. Takva slika je opisana u jednom od gore predstavljenih formata.

3. Kontinuirana tonska slika. Ova vrsta slike može imati mnogo sličnih boja (ili polutonova). Kada se susjedni pikseli razlikuju samo za jedan, oko je gotovo nemoguće razlikovati njihove boje. Kao rezultat toga, takve slike mogu sadržavati područja u kojima se čini da se boja neprestano mijenja za oko. U ovom slučaju, piksel je predstavljen ili velikim brojem (u slučaju polutona) ili tri komponente (u slučaju slike u boji). Neprekidne tonske slike su prirodne ili prirodne (za razliku od umjetnih, umjetnih); Obično se dobijaju snimanjem digitalnim fotoaparatom ili skeniranjem fotografija ili crteža.

4. Slika diskretnog tona (također se naziva sintetička). Obično se ova slika dobiva umjetno. Može imati samo nekoliko boja ili mnogo boja, ali je bez šuma i mrlja prirodne slike. Primjeri takvih slika uključuju fotografije objekata koje je napravio čovjek, mašina ili mehanizama, stranice teksta, mape, crteže ili slike na ekranu računara. (Neće svaka veštačka slika nužno biti diskretnog tona. Kompjuterski generisana slika koja treba da izgleda prirodno imaće neprekidne tonove uprkos svom veštačkom poreklu.) Veštački objekti, tekst i nacrtane linije imaju oblike, dobro definisane granice. Oni su u jakom kontrastu s ostatkom slike (pozadinom). Susjedni pikseli diskretne tonske slike su često pojedinačni ili se jako razlikuju po vrijednosti. Takve slike su loše komprimirane korištenjem metoda s gubitkom, jer izobličenje samo nekoliko piksela slova čini ih nečitkim, pretvarajući uobičajeni stil u potpuno nerazlučiv stil. Slike diskretnih tonova obično imaju dosta suvišnosti. Mnogi njeni fragmenti se ponavljaju mnogo puta na različitim mjestima na slici.

5. Slike nalik crtanim filmovima. To su slike u boji koje sadrže velike površine iste boje. U ovom slučaju, susjedna područja mogu uvelike varirati u boji.

5. Metode obrade slike

Preliminarna analiza slika nam omogućava da zaključimo da:

Prvo, na većinu slika u procesu formiranja (fotografiranje skeniranja i sl.) utječe niz negativnih faktora (vibracije fotoaparata, neravnomjerno kretanje elementa za skeniranje, itd.), što dovodi do zamućenja, pojave niskih - kontrastna i bučna područja itd.

Drugo, velika većina metoda temelji se na identifikaciji objekata na slici i njihovoj daljnjoj analizi.

Dakle, prije analize, slika mora proći kroz pripremnu fazu koja se sastoji od izvođenja operacija za poboljšanje vizualnog kvaliteta (povećanje kontrasta, eliminacija zamućenja, naglašavanje rubova, filtriranje) i operacija za formiranje grafičke pripreme (segmentacija, isticanje kontura) slika.

5.1 Promjena kontrasta

Slab kontrast je obično uzrokovan malim dinamičkim rasponom promjena svjetline ili jakom nelinearnošću u prijenosu nivoa svjetline. Najjednostavniji kontrastni metod je funkcionalno preslikavanje gradacije svjetline fij do gij, odnosno gij = R(fij). U praksi se vrlo često koriste linearna funkcionalna preslikavanja. Ako se, kao rezultat neujednačenog osvjetljenja prilikom fotografiranja ili snimanja fotografija, pojavi situacija u kojoj različita područja slike imaju različit kontrast. U ovom slučaju, adaptivni kontrastni algoritmi se koriste za promjenu kontrasta. Primjer je algoritam lokalnog poboljšanja kontrasta. Eksperimentalne studije su potvrdile visoku efikasnost algoritma ako slika sadrži područja sa očito previsokim ili niskim kontrastima.

Suština algoritma je da se slika posmatra kao skup određenog broja lokalnih područja, a ta područja se obrađuju uzimajući u obzir njihove karakteristike. Obrada se izvodi u sljedećem redoslijedu: faktor pojačanja gustoće rezova p izračunava se zasebno za svako lokalno područje slike. I svaki piksel slike se obrađuje. Ako je p jednako jedan, tada se nikakva radnja ne izvodi na lokalnom području slike (ako je p različit od jedan, tada se povećava kontrast lokalnog područja). U početku se izračunava kontrast u analiziranoj tački u odnosu na najbližu okolinu. Zatim se relativna vrijednost kontrasta dodaje jedinici, a rezultirajuća vrijednost se u algoritmu prihvata kao faktor pojačanja p, a zatim se izračunava pomoću formule:

kontrast programa za segmentaciju slike

gdje je nova vrijednost svjetline, je trenutna svjetlina obrađene slike, je potrebna maksimalna vrijednost svjetline obrađene slike.

5.2 Uglađivanje šuma

Slike su podložne aditivnom i impulsnom šumu tokom faze digitalizacije. Aditivni šum je neki nasumični signal koji se dodaje korisnom na izlazu sistema; u razmatranom slučaju aditivni šum nastaje zbog zrnatosti filma. Impulsni šum, za razliku od aditivnog šuma, karakteriše njegov uticaj na korisni signal samo u pojedinačnim slučajnim tačkama (vrijednost rezultirajućeg signala u tim tačkama poprima slučajnu vrijednost). Impulsni šum je tipičan za sisteme za prenos i skladištenje digitalne slike. Tako se u procesu pripreme slike javlja problem suzbijanja šuma.

Najjednostavniji metod za izglađivanje šuma na slici je izglađivanje, tj. zamjenjujući vrijednost svjetline svakog elementa prosječnom vrijednošću pronađenom u njegovom susjedstvu:

gdje je skup tačaka koje pripadaju susjedstvu tačke (uključujući samu tačku); - broj bodova u susjedstvu.

Razmatrana metoda efikasno eliminiše aditivni i impulsni šum u svakom elementu slike.

5.3 Isticanje granica

Tehnike izglađivanja slike mogu vrlo efikasno ukloniti šum. Značajan nedostatak anti-aliasing algoritama je zamućenje slike (tj. smanjenje jasnoće elemenata konture), a količina zamućenja je proporcionalna veličini maske koja se koristi za izglađivanje. Za nedvosmislenu analizu slike, posebno pri izračunavanju geometrijskih karakteristika strukturnih elemenata, vrlo je važno ukloniti zamućenje sa kontura objekata na slici, odnosno poboljšati razliku između gradacija svjetline konturnih elemenata objekta i susjedni elementi pozadine. U ovom slučaju, prilikom obrade slika, koriste se metode za naglašavanje kontura.

Obično se poboljšanje ivica izvodi pomoću visokofrekventnog prostornog filtriranja. Karakteristike filtera su specificirane kao maska ​​u kojoj prosječna vrijednost mora biti jednaka nuli.

Druga metoda za isticanje granica je takozvana statička diferencijacija. U ovoj metodi, vrijednost svjetline svakog elementa se dijeli sa statističkom procjenom standardne devijacije, odnosno (standardna devijacija se izračunava u nekom susjedstvu elementa).

5.4 Filtriranje medijana

Filtriranje medijana odnosi se na metode nelinearne obrade slike i ima sljedeće prednosti u odnosu na linearno filtriranje (klasični postupak izglađivanja): čuva oštre promjene (granice); efikasno ublažava impulsnu buku; ne mijenja svjetlinu pozadine.

Medijansko filtriranje se izvodi pomicanjem nekog otvora (maske) duž diskretne slike i zamjenom vrijednosti središnjeg elementa maske srednjom vrijednošću (prosječnom vrijednošću uređenog niza) originalnih elemenata unutar otvora. Općenito, otvor može imati različite oblike, ali u praksi kvadratni otvor veličine

5.5 Segmentacija slike

Segmentacija slike se podrazumijeva kao proces njezine podjele na sastavne dijelove koji imaju smisleno značenje: objekte, njihove granice ili druge informativne fragmente, karakteristične geometrijske karakteristike itd. U slučaju automatizacije metoda akvizicije slike, segmentacija se mora smatrati glavna početna faza analize, koja se sastoji u konstruisanju formalnog opisa slike, čiji kvalitet u velikoj meri određuje uspešnost rešavanja problema prepoznavanja i interpretacije objekata.

Općenito, segmentacija je operacija particioniranja konačnog skupa ravnine na kojoj je funkcija originalne slike definirana na neprazne povezane podskupove u skladu s nekim predikatom definiranim na skupu i uzimajući istinite vrijednosti kada bilo koji par tačke iz svakog podskupa zadovoljava neki kriterijum homogenosti (na primer, kriterijum homogenosti zasnovan na proceni maksimalne razlike u osvetljenosti pojedinačnog piksela i prosečne vrednosti svetline izračunate za odgovarajuću oblast).

5.5.1 Metode segmentacije praga

Postavljanje praga je jedna od glavnih metoda za segmentaciju slike zbog svojih intuitivnih svojstava. Ova metoda je usmjerena na obradu slika čije se pojedinačne homogene površine razlikuju po prosječnoj svjetlini. Najčešća metoda segmentacije putem praga je binarna segmentacija, odnosno kada na raspolaganju imamo dvije vrste homogenih područja.

U ovom slučaju, slika se obrađuje piksel po piksel i konverzija svakog piksela ulazne slike u izlaznu se određuje iz relacije:

gdje je parametar obrade koji se naziva prag, a nivoi izlazne svjetline. Obrada po pikselima, čija pozicija na slici ne igra nikakvu ulogu, naziva se obrada tačke. Nivoi igraju ulogu oznaka. Koriste se da bi se odredilo koji tip je data tačka klasifikovana kao: H0 ili H1. Ili kažu da se H0 sastoji od pozadinskih tačaka, a H1 od interesnih tačaka. Po pravilu, nivoi odgovaraju nivoima bele i crne. Klase H1 (aka klasa od interesa) nazvaćemo klasom objekata, a klasu H0 pozadinskom klasom.

Naravno, segmentacija ne može biti samo binarna, iu ovom slučaju postoji više od dvije postojeće klase. Ova vrsta segmentacije se naziva višeslojnom. Rezultirajuća slika nije binarna, već se sastoji od segmenata različite svjetline. Formalno, ova operacija se može napisati na sljedeći način:

gdje je broj nivoa, a su klase slike. U tom slučaju, za svaku od klasa, mora se postaviti odgovarajući prag koji bi odvojio ove klase jednu od druge. Binarne slike je lakše pohraniti i obraditi od slika koje imaju mnogo nivoa svjetline.

Najteža stvar kod postavljanja praga je sam proces određivanja praga. Prag se često piše kao funkcija oblika:

gdje je slika, i neka karakteristika tačke slike, na primjer, prosječna svjetlina u susjedstvu sa središtem u ovoj tački.

Ako vrijednost praga ovisi samo o, odnosno ista za sve točke slike, onda se takav prag naziva globalnim. Ako prag ovisi o prostornim koordinatama, tada se takav prag naziva lokalnim. Ako ovisi o karakteristikama, onda se takav prag naziva adaptivan. Stoga se obrada smatra globalnom ako se odnosi na cijelu sliku u cjelini, a lokalnom ako se odnosi na određeno odabrano područje.

Pored navedenih razlika između algoritama, postoji mnogo više metoda. Mnogi od njih su jednostavno kombinacija drugih, ali većina njih, na ovaj ili onaj način, temelji se na analizi histograma originalne slike, međutim, postoje fundamentalno i drugi pristupi koji ne utječu direktno na analizu histograma ili preći od njih na analizu nekih drugih funkcija.

5.5.2 Metode uzgojnih površina

Metode ove grupe zasnivaju se na upotrebi lokalnih karakteristika slike. Ideja metode uzgoja područja je da se prvo analizira početna tačka, zatim njene susjedne tačke, itd. u skladu sa nekim kriterijumom homogenosti, i naknadnim uvrštavanjem analiziranih tačaka u jednu ili drugu grupu (broj polaznih tačaka mora biti jednak broju homogenih oblasti na slici). Efikasnije verzije metode ne koriste pojedinačne piksele kao početnu tačku, već razbijaju sliku na nekoliko malih područja. Zatim se provjerava ujednačenost svake oblasti, a ako je rezultat testa negativan, odgovarajuće područje se dijeli na manje dijelove. Proces se nastavlja sve dok sva odabrana područja ne prođu test homogenosti. Nakon toga počinje formiranje homogenih površina korištenjem ekstenzija.

Segmentacija praga i segmentacija zasnovana na kriterijumu homogenosti na osnovu prosečne osvetljenosti često ne daju željene rezultate. Ova segmentacija obično rezultira značajnim brojem malih regija koje nemaju prave prototipove na slici. Najefikasniji rezultati se dobijaju segmentacijom na osnovu kriterijuma homogenosti na osnovu teksture (ili karakteristika teksture).

5.5.3 Ocrtavanje

Nije neuobičajeno naići na problem pronalaženja perimetara, zakrivljenosti, faktora oblika, specifične površine objekata itd. Svi navedeni zadaci se na ovaj ili onaj način odnose na analizu konturnih elemenata objekata.

Metode za identifikaciju kontura (ivica) na slici mogu se podijeliti u sljedeće glavne klase:

metode visokopropusnog filtriranja;

metode prostorne diferencijacije;

Metode funkcionalne aproksimacije.

Zajedničko za sve ove metode je tendencija da se granice razmatraju kao područje oštre promjene u funkciji svjetline slike; Ono što ih razlikuje je uvedeni matematički model koncepta granice i algoritam za traženje graničnih tačaka.

U skladu sa postavljenim zadacima algoritmima za ekstrakciju konture postavljaju se sljedeći zahtjevi: odabrane konture moraju biti tanke, bez prekida i zatvorene. Dakle, proces identifikacije kontura je donekle kompliciran zbog potrebe primjene algoritama za stanjivanje i eliminaciju praznina. Međutim, to ne daje uvijek željeni rezultat - u većini slučajeva konture nisu zatvorene i, kao rezultat, neprikladne za brojne postupke analize.

Problem koji je nastao može se riješiti konturiranjem s algoritmom za praćenje rubova pomoću metode „bug“, koja vam omogućava da istaknete zatvorene konture objekata. Suština algoritma je sljedeća: određena početna granična točka se odabire na objektu i kontura se uzastopno prati sve dok se ne dostigne početna točka. U slučaju praćenja konture u smjeru kazaljke na satu, da bi se došlo do početne točke, vrši se pomicanje piksel po piksel udesno ako je piksel izvan objekta, i ulijevo ako je na objektu.

Ovako odabrana kontura je kod zatvorenog lanca, tj. niz koordinata graničnih tačaka objekta, što je veoma pogodno za rešavanje zadatih problema.

5.5.4 Metode zasnovane na grupisanju

Metoda K-means je iterativna metoda koja se koristi za podjelu slike u K klastera. Osnovni algoritam je dat u nastavku:

1. Odaberite K centara klastera, nasumično ili na osnovu neke heuristike;

2. Postavite svaki piksel slike u klaster čiji je centar najbliži ovom pikselu;

3. Ponovo izračunajte centre klastera usrednjavanjem svih piksela u klasteru;

4. Ponovite korake 2 i 3 do konvergencije (na primjer, kada pikseli ostanu u istom klasteru).

Ovdje se udaljenost obično uzima kao zbir kvadrata ili apsolutne vrijednosti razlika između piksela i centra klastera. Razlika se obično zasniva na boji, svjetlini, teksturi i lokaciji piksela ili ponderiranom zbroju ovih faktora.

K se može odabrati ručno, nasumično ili heuristički.

Zagarantovano je da će ovaj algoritam konvergirati, ali možda neće rezultirati optimalnim rješenjem.

Kvalitet rješenja ovisi o početnom skupu klastera i vrijednosti K.

5.5.5 Metode histograma

Metode zasnovane na histogramu su veoma efikasne u poređenju sa drugim metodama segmentacije slike jer zahtevaju samo jedan prolaz kroz piksele. U ovoj metodi, histogram se izračunava preko svih piksela na slici, a njegovi minimumi i maksimumi se koriste za pronalaženje klastera na slici. Za poređenje se može koristiti boja ili svjetlina.

Poboljšanje ove metode je da se rekurzivno primjenjuje na klastere na slici kako bi se podijelili u manje klastere. Proces se ponavlja sa sve manjim i manjim klasterima sve dok se ne pojave novi klasteri.

Jedan nedostatak ove metode je što može imati poteškoća u pronalaženju značajnih minimuma i maksimuma na slici. U ovoj metodi klasifikacije slika, metrika udaljenosti i integrisano podudaranje regiona su slični.

Pristupi zasnovani na histogramu također se mogu brzo prilagoditi u više okvira, a istovremeno održavaju prednost u brzini u jednom prolazu. Histogram se može konstruirati na nekoliko načina kada se razmatra više okvira. Isti pristup koji se koristi za jedan kadar može se primijeniti na nekoliko, a kada se rezultati kombiniraju, slabi i usponi koje je bilo teško izdvojiti postaju vidljiviji. Histogram se također može primijeniti na bazi po pikselu, gdje se informacije koriste za određivanje najčešće boje za dati položaj piksela. Ovaj pristup koristi segmentaciju zasnovanu na pokretnim objektima i stacionarnom okruženju, što pruža drugu vrstu segmentacije koja je korisna u video praćenju.

5.5.6 Metode uzgojnih površina

Prva je bila metoda uzgoja površina iz sjemena. Ova metoda uzima slike i set sjemenki kao ulaz. Sjemenke označavaju objekte za isticanje. Regioni postepeno rastu upoređujući sve nezauzete susedne piksele sa regionom. Razlika d između svjetline piksela i prosječne svjetline regije koristi se kao mjera sličnosti. Piksel sa najmanjom takvom razlikom dodaje se odgovarajućoj oblasti. Proces se nastavlja sve dok se svi pikseli ne dodaju u jednu od regija.

Način uzgoja površina iz sjemena zahtijeva dodatni unos. Rezultat segmentacije zavisi od izbora semena. Šum na slici može biti uzrokovan loše postavljenim sjemenkama. Metoda uzgoja regiona bez upotrebe sjemena je modificirani algoritam koji ne zahtijeva eksplicitno sjeme. Počinje sa jednom regijom - piksel koji je ovdje odabran ima mali utjecaj na konačnu segmentaciju. Na svakoj iteraciji, razmatra susjedne piksele na isti način kao i metoda uzgoja regije korištenjem sjemena. Ali tu se razlikuje, ako minimum nije manji od navedenog praga, onda se dodaje u odgovarajuće područje. U suprotnom, piksel se smatra veoma različitim od svih trenutnih regija i kreira se nova regija koja sadrži ovaj piksel.

Jedna varijanta ove metode zasniva se na korištenju svjetline piksela. Srednja vrijednost i varijansa regije i svjetlina kandidata kandidata koriste se za konstruiranje statistike testa. Ako je test statistika dovoljno mala, tada se piksel dodaje regionu i srednja vrednost i varijansa regiona se ponovo izračunavaju. U suprotnom, piksel se zanemaruje i koristi za kreiranje nove regije.

5.5.7 Metode rezanja grafikona

Metode rezanja grafa mogu se efikasno primijeniti na segmentaciju slike. U ovim metodama, slika je predstavljena kao ponderirani neusmjereni graf. Tipično, piksel ili grupa piksela je povezana s vrhom, a težine rubova određuju sličnost ili različitost susjednih piksela. Zatim se graf seče prema kriterijumu koji je kreiran da bi se dobili „dobri“ klasteri. Svaki dio vrhova (piksela) proizveden ovim algoritmima smatra se objektom na slici.

5.5.8 Segmentacija sliva

U segmentaciji vododjelnice, slika se smatra mapom područja, gdje vrijednosti svjetline predstavljaju vrijednosti visine u odnosu na određeni nivo. Ako se ovo područje napuni vodom, formiraju se bazeni. Kada se dodatno napune vodom, ovi bazeni se kombinuju. Mesta na kojima se ovi baseni spajaju označena su linijama vododelnice.

U ovom tumačenju razmatraju se tri vrste tačaka:

1. lokalni minimum;

2. tačke koje se nalaze na padini, tj. iz kojih se voda spušta do istog lokalnog minimuma;

3. lokalni maksimum bodova, tj. iz kojih se voda otkotrlja u više od jednog minimuma.

Odvajanje dodirnih objekata na slici jedan je od važnih problema obrade slike. Često se za rješavanje ovog problema koristi tzv. Transformacije koje koriste ovu metodu trebaju identificirati "vododijelnice" i "vododjelne linije" na slici obradom lokalnih područja ovisno o njihovim karakteristikama svjetline.

Markerska metoda je jedna od najefikasnijih metoda segmentacije slike.

Prilikom implementacije ove metode izvode se sljedeće osnovne procedure:

1. Izračunava se funkcija segmentacije. To se odnosi na slike na kojima se objekti nalaze u tamnim područjima i teško ih je vidjeti.

2. Proračun markera prednjeg plana slika. Izračunavaju se na osnovu analize povezanosti piksela svakog objekta.

3. Proračun pozadinskih markera. Oni predstavljaju piksele koji nisu dijelovi objekata.

4. Modifikacija funkcije segmentacije na osnovu lokacijskih vrijednosti markera pozadine i markera prednjeg plana.

Jedna od najvažnijih primjena segmentacije po slivovima je odabir objekata ujednačene svjetline (u obliku mrlja) iz pozadine slike. Područja koja karakteriziraju male varijacije u svjetlini imaju male vrijednosti gradijenta. Stoga se u praksi često događa situacija kada se metoda segmentacije vododjelnice primjenjuje ne na samu sliku, već na njen gradijent.

6. Opis funkcija

Ovaj rad predstavlja algoritam za segmentaciju slike korištenjem markerske metode vododjelnice.

Glavne funkcije koje se koriste prilikom kreiranja programa:

Funkcija fspecial kreira dvodimenzionalni filter specificiranog tipa;

Funkcija imfilter je morfološka operacija za kreiranje slike gradijenta;

Funkcija vododjelnice pretvara vododjelnicu iz slike;

Funkcija label2rgb konvertuje originalnu sliku u sive nijanse;

Funkcija imregionalmax određuje sve lokalne maksimume slike;

Funkcija imextendedmin pronalazi "niske" tačke na slici koje leže dublje od određenog nivoa praga u poređenju sa njihovom neposrednom okolinom;

Funkcija imposemin modificira sliku u nijansama sive tako da se lokalni minimumi postižu samo na označenim pozicijama; druge vrijednosti piksela se povećavaju kako bi se eliminirale sve ostale lokalne minimalne točke;

Funkcije imreconstruct i implement - rekonstrukcija slike pomoću morfoloških operacija otvaranja (zatvaranja).

7. Algoritamsko testiranje

Prilikom implementacije ove metode izvršene su sljedeće procedure:

1. Pročitajte sliku i pretvorite je u nijanse sive (slika 1);

Slika 1. Originalne (lijevo) i polutonske (desno) slike.

2. Koristimo vrijednosti gradijenta kao funkciju segmentacije (slika 2);

Slika 2. Vrijednosti gradijenta.

3. Izvodimo morfološke operacije na slici (slika 3);

Slika 3. Rezultat primjene morfoloških operacija otvaranja-zatvaranja kroz rekonstrukciju slike.

4. Izračunajte markere prednjeg plana i pozadine slike (slika 4);

Slika 4. Markeri prednjeg plana (lijevo) i pozadine (desno) slike.

5. Gradimo granice slivova (Slika 5);

Slika 5. Granice sliva.

6. Prikazati markere i granice objekata na polutonskoj slici (slika 6);

Slika 6. Markeri i granice objekata.

7. Prikažite rezultat segmentacije koristeći sliku u boji (lijevo) i koristeći polu-transparentni način (desno).

Slika 7 Rezultati segmentacije.

Zaključak

U ovom radu razvijena je metoda markera za segmentaciju slike.

Direktna primjena algoritma segmentacije vododjelnice rezultira redundantnom segmentacijom, tako da se pristup baziran na markerima koristi za upravljanje redundantnom segmentacijom.

Marker predstavlja povezanu komponentu koja pripada slici. Također, prije segmentacije po slivovima, izvršena je neophodna predobrada slike.

Spisak korištenih izvora

1. Gonzalez R., Woods R. Digitalna obrada slike. - M.: Tehnosfera, 2005. 1072 str.

2. Pratt W. Digitalna obrada slike. - M.: Mir, knjiga 1, 1982. 312 str.

3. Yaroslavsky L.P. Uvod u digitalnu obradu slike. - M: Sov. radio, 1979. 312 str.

4. Pratt W. Digitalna obrada slike. - M: Mir, knjiga. 1, 1982. 480 str.

5. http://www.ict.edu.ru/lib/

6. http://matlab.exponenta.ru/imageprocess/book2/76.php

7. Vizilter Yu.V. Obrada i analiza digitalnih slika sa primjerima u LabVIEW i IMAQ VIsion. - M: DMK, 2011. 464 str.

8. Gonzalez R., Woods R., Eddins S. Digitalna obrada slike u MATLAB-u. - M: Tehnosfera, 2006. 616 str.

9. http://matlab.exponenta.ru/imageprocess/book2/48.php

10. Salomon D. Kompresija podataka, slika i zvuka. - M.: Tehnosfera, 2004. 368 str.

Aplikacija

Brojimo sliku

rgb=imread("C:\Users\Name\Documents\MATLAB\picture1.jpeg");

Zamislimo to kao poluton

I=rgb2gray(rgb);figura,imshow(I);

Izračunajte vrijednost gradijenta

hy=fspecial("sobel"); hx=hy";

Iy=imfilter(double(I), hy, "repliciranje");

Ix=imfilter(double(I), hx, "repliciranje");

gradmag=sqrt(Ix.^2+Iy.^2);

Primijenimo metodu vododjelnice

L=vododjelnica(gradmag);Lrgb=oznaka2rgb(L);

Morfološke operacije

se = strel("disk",15);

Ie = imerode(I, se);Iobr = imreconstruct(Ie, I);

Iobrd = imdilate(Iobr, se);

Iobrcbr = imreconstruct(imcomplement(Iobrd),imcomplement(Iobr));

Iobrcbr = dopuna(Iobrcbr);

Izračunajmo lokalne maksimume

fgm = imregionalmax(Iobrcbr);

Stavimo markere na sliku

I2 = I;I2(fgm) = 255;

Uklanjanje pojedinačnih izoliranih piksela

se2 = strel(ones(3,3));fgm2 = imclose(fgm, se2);fgm3 = imerode(fgm2, se2);

Uklonite određeni broj piksela

fgm4 = bwareaopen(fgm3, 20);

Prekrijte ga na originalnu sliku

I3 = I;I3(fgm4) = 255;

Izračunajmo markere pozadine

bw = im2bw(Iobrcbr, graythresh(Iobrcbr));

Mjerenje udaljenosti do linije vododjelnice

D = bwdist(bw);DL = vododjelnica(D);bgm = DL == 0;

slika, imshow(bgm), title("bgm");

Podešavanje vrijednosti gradijenta

gradmag2 = imimposemin(gradmag, bgm | fgm4);

L = sliv(gradmag2);

Primijenite markere i granice objekata na izvornu sliku

I4 = I;I4(imdilat(L == 0, jedinice(3, 3)) | bgm | fgm4) = 255;

Prikažite rezultat koristeći sliku u boji

Lrgb = label2rgb(L, "jet", "w", "promiješaj");

Primijenimo markere i ivice objekata na prozirnu sliku

slika, imshow(I), čekaj

himage = imshow(Lrgb);

set(himage, "AlphaData", 0.3);

title("Lrgb2");

Objavljeno na Allbest.ru

...

Slični dokumenti

    Digitalni radiografski sistemi. Metode za automatsku analizu slike u MatLab okruženju. Analiza rendgenskih snimaka. Filtriranje, segmentacija, poboljšanje slike. Hardverske mogućnosti za preliminarnu normalizaciju slike.

    kurs, dodato 07.12.2013

    Izbor metoda obrade slike i segmentacije. Matematička osnova primijenjenih filtera. Histogram svjetline slike. Softverska implementacija složene metode obrade slike. Testiranje razvijenog softvera.

    predmetni rad, dodato 18.01.2017

    Proučavanje i implementacija softvera u Matlab okruženju metoda za obradu, analizu, filtriranje, segmentaciju i poboljšanje kvaliteta rendgenskih medicinskih slika. Digitalni radiografski sistemi. Razvoj statički baziranih algoritama.

    kurs, dodato 20.01.2016

    Savremeni sistemi za analizu teksture slika. Primjeri segmentacije teksture jednokanalnih slika. Korištenje karakteristika dobivenih iz histograma svjetline drugog reda za klasifikaciju spektrozonskih fotografija iz zraka.

    sažetak, dodan 15.01.2017

    Kompjuterska grafika i obrada slika elektronskim računarima su najvažniji aspekt upotrebe računara u svim sferama ljudske delatnosti. Razvoj „podsistema linearne segmentacije“, opis algoritma i logike.

    teza, dodana 23.06.2008

    Problemi obrade digitalne slike. Metode segmentacije praga. Izrada programa za predstavljanje crteža u obliku matrice i primjena obrade praga na njega. Izrada interfejsa za program za učitavanje i filtriranje slika sa odabranim pragom.

    kurs, dodan 12.11.2012

    Opis matematičkih metoda za predstavljanje i obradu grafičkih slika. Opis razvijenog softverskog dodatka. Opis funkcija i njihovih atributa. Prezentacija i obrada grafičkih slika. Rezultati testiranja programa.

    kurs, dodato 27.01.2015

    Problem prostorno-vremenske obrade slike u prisustvu šuma i smetnji. Metode optimizacije za prostorno-vremensku obradu slike. Struktura specijalizovanog programa, opis njegovog korisničkog interfejsa. Procjena troškova.

    teze, dodato 10.06.2013

    Detekcija detalja i njihovih granica na slici. Primjena algoritama rangiranja. Korištenje algoritama kvantizacije adaptivnog načina u načinu obrade fragment po fragment. Generalizirano linearno filtriranje slike. Obnova nedostajućih područja.

    kurs, dodan 17.06.2013

    Pregled postojećeg softvera za automatizaciju odabira ivica na slici. Razvoj matematičkog modela za obradu slike i izdvajanje kontura u nijansama sive i softvera za algoritme obrade slike.

Vođena segmentacija vododjela

Često se prilikom analize slika javlja zadatak podjele piksela slike u grupe prema određenim karakteristikama. Ovaj proces podjele u grupe naziva se segmentacija. Najpoznatije su dvije vrste segmentacije - segmentacija po svjetlini za binarne slike i segmentacija po koordinatama boja za slike u boji. Metode segmentacije se mogu smatrati formalizacijom koncepta razlikovanja objekta od pozadine ili pojmova povezanih s gradijentom svjetline. Algoritme segmentacije karakterišu određeni parametri pouzdanosti i tačnosti obrade. One ovise o tome koliko su u potpunosti uzete u obzir dodatne karakteristike raspodjele svjetline u područjima objekata ili pozadine, broj promjena svjetline, oblik objekata itd.

Postoje mnoge slike koje sadrže predmet interesovanja prilično ujednačene svjetline na pozadini različite svjetline. Primjeri uključuju rukom pisani tekst, niz medicinskih slika itd. Ako se svjetlina tačaka objekta naglo razlikuje od svjetline tačaka pozadine, tada je rješavanje problema postavljanja praga jednostavan zadatak. U praksi to nije tako jednostavno, jer je slika koja se proučava podložna šumu i dopuštene su neke varijacije u vrijednostima svjetline. Postoji nekoliko analitičkih pristupa ograničenju praga svjetline. Jedna metoda je da se prag postavi na takav nivo da je ukupan zbir elemenata sa podpragom osvetljenosti u skladu sa prethodnim verovatnoćama tih vrednosti osvetljenosti.

Slični pristupi se mogu primijeniti na obradu slika u boji i spektrozonskih slika. Postoji i vrsta segmentacije koja se zove konturna segmentacija. Vrlo često, analiza slike uključuje operacije kao što je dobivanje vanjske konture slika objekata i snimanje koordinata tačaka na ovoj konturi. Postoje tri glavna pristupa predstavljanju granica objekta: aproksimacija krive, praćenje konture i povezivanje tačaka pada. Da bismo upotpunili analizu, treba napomenuti da postoji i segmentacija teksture i segmentacija oblika.

Najjednostavniji tip segmentacije je segmentacija praga. Našao je vrlo široku primjenu u robotici. To se objašnjava činjenicom da na ovom području slike objekata koji se proučavaju uglavnom imaju prilično ujednačenu strukturu i njihova pozadina se oštro ističe. Ali osim toga, za pouzdanu obradu morate znati da se slika sastoji od jednog objekta i pozadine, čija je svjetlina u strogo poznatim rasponima i ne presijecaju se.

Razvoj tehnologija obrade slike doveo je do pojave novih pristupa rješavanju problema segmentacije slike i njihove primjene u rješavanju mnogih praktičnih problema.

U ovom radu ćemo razmotriti relativno nov pristup rješavanju problema segmentacije slike – metodu vododjelnice. Hajde da ukratko objasnimo naziv ove metode i šta je njena suština.

Predlaže se da se slika posmatra kao mapa područja, gdje vrijednosti svjetline predstavljaju vrijednosti visine u odnosu na određeni nivo. Ako se ovo područje napuni vodom, formiraju se bazeni. Kada se dodatno napune vodom, ovi bazeni se kombinuju. Mesta na kojima se ovi baseni spajaju označena su linijama vododelnice.

Odvajanje dodirnih objekata na slici jedan je od važnih problema obrade slike. Često se za rješavanje ovog problema koristi tzv. Transformacije koje koriste ovu metodu trebaju identificirati "vododijelnice" i "vododjelne linije" na slici obradom lokalnih područja ovisno o njihovim karakteristikama svjetline.

Markerska metoda je jedna od najefikasnijih metoda segmentacije slike. Prilikom implementacije ove metode izvode se sljedeće osnovne procedure:

    Izračunava se funkcija segmentacije. To se odnosi na slike na kojima se objekti nalaze u tamnim područjima i teško ih je vidjeti.

    Računanje markera prednjeg plana slika. Izračunavaju se na osnovu analize povezanosti piksela svakog objekta.

    Računanje pozadinskih markera. Oni predstavljaju piksele koji nisu dijelovi objekata.

    Modifikacija funkcije segmentacije na osnovu lokacijskih vrijednosti markera pozadine i markera prednjeg plana.

    Proračuni zasnovani na modificiranoj funkciji segmentacije.

U ovom primjeru, najčešće korištene funkcije alata za obradu slike su fspecial, imfilter, watershed, label2rgb, imopen, imclose, imreconstruct, imcomplement, imregionalmax, bwareaopen, graythresh i imposemin.

  • Korak 1: Pročitajte sliku u boji i pretvorite je u sivilo.
  • Korak 2: Korištenje vrijednosti gradijenta kao funkcije segmentacije.
  • Korak 3: Označavanje objekata u prednjem planu.
  • Korak 4: Izračunajte pozadinske markere.
  • Korak 6: Vizualizacija rezultata obrade.

Korak 1: Pročitajte sliku u boji i pretvorite je u sivilo.

Čitamo podatke iz datoteke pears.png rgb=imread("pears.png"); i predstavite ih kao sliku u polutonu. I=rgb2siva(rgb); imshow(I) text(732,501,"…",... "FontSize",7,"HorizontalAlignment","right")

Korak 2: Korištenje vrijednosti gradijenta kao funkcije segmentacije.

Sobel operator, funkcija imfiltera i drugi proračuni se koriste za izračunavanje vrijednosti gradijenta. Gradijent ima velike vrijednosti na granicama objekata i male vrijednosti (u većini slučajeva) izvan granica objekata.

Hy=fspecial("sobel"); hx=hy"; Iy=imfilter(double(I), hy, "replicate"); Ix=imfilter(double(I), hx, "replicate"); gradmag=sqrt(Ix.^2+Iy.^2 ); slika, imshow(gradmag,), title("vrijednost gradijenta")

Stoga, nakon izračunavanja vrijednosti gradijenta, možete početi segmentirati slike korištenjem razmatrane metode sliva.

L=sliv(gradmag); Lrgb=oznaka2rgb(L); slika, imshow(Lrgb), title("Lrgb")

Međutim, bez dodatnih dodatnih proračuna, takva će segmentacija biti površna.

Korak 3: Označavanje objekata u prednjem planu.

Za označavanje objekata u prednjem planu mogu se koristiti različite procedure. Ovaj primjer će koristiti morfološke tehnologije nazvane "otvaranje kroz restauraciju" i "zatvaranje kroz restauraciju". Ove operacije vam omogućavaju da analizirate unutrašnju regiju objekata slike pomoću funkcije imregionalmax.

Kao što je već spomenuto, prilikom označavanja objekata u prvom planu koriste se i morfološke operacije. Pogledajmo neke od njih i uporedimo. Prvo, implementiramo operaciju proširenja koristeći imopen funkciju.

Se=strel("disk", 20); Io=imopen(I, se); slika, imshow(Io), title("Io")

Ie=imerode(I, se); Iobr=imreconstruct(Ie, I); slika, imshow(Iobr), title("Iobr")

Naknadne morfološke operacije otvaranja i zatvaranja rezultirat će pomicanjem tamnih mrlja i formiranjem markera. Analizirajmo operacije morfološkog zatvaranja. Da biste to učinili, prvo koristite funkciju imclose:

Ioc=imclose(Io, se); slika, imshow(Ioc), title("Ioc")

Iobrd=imdilate(Iobr, se); Iobrcbr=imreconstruct(imkomplement(Iobrd), dopuna(Iobr)); Iobrcbr=imkomplement(Iobrcbr); slika, imshow(Iobrcbr), title("Iobrcbr")

Komparativna vizuelna analiza Iobrcbr i Ioc pokazuje da je prikazana rekonstrukcija zasnovana na morfološkim operacijama otvaranja i zatvaranja efikasnija u poređenju sa standardnim operacijama otvaranja i zatvaranja. Izračunajmo lokalne maksimume Iobrcbr i dobijemo markere prednjeg plana.

Fgm=imregionalmax(Iobrcbr); slika, imshow(fgm), title("fgm")

Primijenimo markere prednjeg plana na originalnu sliku.

I2=I; I2(fgm)=255; slika, imshow(I2), title("fgm superponiran na originalnu sliku")

Imajte na umu da neki skriveni ili zatvoreni objekti na slici nisu označeni. Ovo svojstvo utiče na formiranje rezultata i mnogi takvi objekti slike neće biti obrađeni sa tačke gledišta segmentacije. Dakle, markeri u prednjem planu pokazuju samo granice većine objekata. Tako predstavljene granice podliježu daljoj obradi. Konkretno, to mogu biti morfološke operacije.

Se2=strel(jedinice(5, 5)); fgm2=imclose(fgm, se2); fgm3=imerode(fgm2, se2);

Kao rezultat ove operacije, pojedinačni izolirani pikseli slike nestaju. Također možete koristiti bwareaopen funkciju, koja vam omogućava da uklonite određeni broj piksela.

Fgm4=bwareaopen(fgm3, 20); I3=I; I3(fgm4)=255; slika, imshow(I3) title("fgm4 prekriven originalnom slikom")

Korak 4: Izračunajte pozadinske markere.

Sada izvršimo operaciju označavanja pozadine. Na slici Iobrcbr, tamni pikseli pripadaju pozadini. Stoga se može primijeniti operacija praga slike.

Bw=im2bw(Iobrcbr, graythresh(Iobrcbr)); slika, imshow(bw), title("bw")

Pozadinski pikseli su tamni, ali ne možemo jednostavno izvršiti morfološke operacije na pozadinskim markerima i dobiti granice objekata koje segmentiramo. Želimo da "razrijedimo" pozadinu tako da dobijemo pravi kostur slike, ili takozvani prednji plan slike u polutonu. Ovo se izračunava korištenjem pristupa vododjelnici i na osnovu mjerenja udaljenosti (do linija sliva).

D=bwdist(bw); DL=sliv(D); bgm=DL==0; slika, imshow(bgm), title("bgm")

Korak 5: Proračun korištenjem metode markera sliva na osnovu modificirane funkcije segmentacije.

Funkcija imimposemin može se koristiti za precizno određivanje lokalnih minimuma na slici. Na osnovu toga, funkcija imimposemin također može podesiti vrijednosti gradijenata na slici i tako precizirati lokaciju markera prednjeg plana i pozadine.

Gradmag2=imimposemin(gradmag, bgm | fgm4);

Konačno, izvodi se operacija segmentacije zasnovana na vododjelu.

L=sliv(gradmag2);

Korak 6: Vizualizacija rezultata obrade.

Prikažimo prekrivene markere prednjeg plana, markere pozadine i granice segmentiranih objekata na originalnoj slici.

I4=I; I4(imdilat(L==0, one(3, 3))|bgm|fgm4)=255; figure, imshow(I4) title("Markeri i granice objekta postavljene na originalnu sliku")

Kao rezultat ovog prikaza, možete vizualno analizirati lokaciju markera u prednjem planu i pozadini.

Također je zanimljivo prikazati rezultate obrade pomoću slike u boji. Matrica koja je generirana funkcijama watershed i bwlabel može se pretvoriti u sliku u boji pomoću funkcije label2rgb.

Lrgb=label2rgb(L, "jet", "w", "promiješaj"); slika, imshow(Lrgb) title("Lrgb")

Takođe možete koristiti polutransparentni način da preložite matricu oznaka u pseudobojima na vrhu originalne slike.

Slika, imshow(I), držite himage=imshow(Lrgb); set(himage, "AlphaData", 0.3); title("Lrgb prekriven originalnom slikom u polutransparentnom načinu")

Jedan od glavnih zadataka obrade i analize slike je segmentacija, tj. dijeljenje slike na područja za koja je ispunjen određeni kriterij homogenosti, na primjer, isticanje područja približno iste svjetline na slici. Koncept područja slike koristi se za definiranje koherentne grupe elemenata slike koji imaju određenu zajedničku osobinu (svojstvo).
Jedan od glavnih i najjednostavnijih načina je izgradnja segmentacije pomoću praga. Prag je znak (osobina) koji pomaže da se željeni signal podijeli u klase. Operacija podjele praga je upoređivanje vrijednosti svjetline svakog piksela na slici sa specificiranom vrijednošću praga.
Binarizacija

Operacija postavljanja praga koja rezultira binarnom slikom naziva se binarizacija. Svrha operacije binarizacije je radikalno smanjiti količinu informacija sadržanih u slici. U procesu binarizacije, originalna polutonska slika, koja ima određeni broj nivoa svjetline, pretvara se u crno-bijelu sliku, čiji pikseli imaju samo dvije vrijednosti - 0 i 1

Postavljanje praga slike može se izvršiti na različite načine.

Binarizacija sa nižim pragom
Binarizacija sa nižim pragom
Binarizacija s nižim pragom je najjednostavnija operacija koja koristi samo jednu vrijednost praga:

Sve vrijednosti umjesto kriterija postaju 1, u ovom slučaju 255 (bijelo) i sve vrijednosti (amplitude) piksela koje su veće od praga t - 0 (crno).

Binarizacija sa gornjim pragom
Ponekad možete koristiti varijantu prve metode, koja proizvodi negativ slike dobivene procesom binarizacije. Operacija binarizacije sa gornjim pragom:

Binarizacija sa dvostrukim ograničenjem
Da bi se istakla područja u kojima vrijednosti svjetline piksela mogu varirati unutar poznatog raspona, uvodi se binarizacija s dvostrukim ograničenjem (t 1
Moguće su i druge varijacije sa pragovima, gdje se samo dio podataka propušta (filter srednjeg opsega).

Nepotpuno postavljanje praga
Ova transformacija proizvodi sliku koju je možda lakše dalje analizirati jer postaje lišena pozadine sa svim detaljima prisutnim na originalnoj slici.

Transformacija praga na više nivoa
Ova operacija formira sliku koja nije binarna, već se sastoji od segmenata različite svjetline.

Što se tiče binarizacije, to je u suštini to. Iako možemo dodati da postoji globalni, koji se koristi za cijelu sliku, a postoji i lokalni, koji hvata dio slike (slike).

Lokalni prag
Otsa metoda
Metoda koristi histogram distribucije vrijednosti svjetline piksela rasterske slike. Histogram se konstruiše korišćenjem vrednosti p i =n i /N, gde je N ukupan broj piksela na slici, n i broj piksela sa nivoom osvetljenosti i. Raspon svjetline je podijeljen u dvije klase korištenjem praga nivoa svjetline k,k - cjelobrojne vrijednosti od 0 do L. Svaka klasa odgovara relativnim frekvencijama ω 0 ω 1:

Prosječni nivoi za svaku od dvije klase slika:
Zatim se izračunava maksimalna vrijednost za procjenu kvaliteta podjele slike na dva dijela:
gdje je (σ cl)2=ω 0 ω 1 (μ 1 -μ 0) 2 međuklasna varijansa, a (σ total) 2 je ukupna varijansa za cijelu sliku.

Prag zasnovan na gradijentu svjetline slike
Pretpostavimo da se analizirana slika može podijeliti u dvije klase – objekte i pozadinu. Algoritam za izračunavanje granične vrijednosti sastoji se od sljedeća 2 koraka:
1. Modul gradijenta svjetline se određuje za svaki piksel
Slike

2. Izračun praga:
Ukupno
Rado sam sa vama podijelio ono što sam pronašao; u budućnosti ću, ako uspijem i budem imao vremena, pokušati implementirati neke od algoritama. Ovo je samo mali dio svega što danas postoji, ali rado ću podijeliti i ovo.
Hvala vam na pažnji.

Najbolji članci na ovu temu