Pilditöötluse põhialgoritmid. Pildi eeltöötluse algoritmid Pildi eeltöötlus

Digitaalne müra on pildidefekt, mis on juhuslikult paiknevad alad, mis on lähedased pikslisuurusele ja erinevad originaalpildist heleduse või värvi poolest. Mürasummutus mängib olulist rolli videoseeriade ja piltide edastamisel, töötlemisel ja tihendamisel.

Videomüra võib tekkida mitmel põhjusel:

1. Ebatäiuslikud videosalvestusseadmed.

2. Halvad pildistamistingimused – näiteks öine foto/video tegemine, pildistamine kehva ilmaga.

3. Häired analoogkanalite kaudu edastamisel - häired elektromagnetväljade allikatest, ülekandeliini aktiivsete komponentide (võimendite) sisemine müra. Näiteks võib tuua telesignaali.

4. Filtreerimise ebatäpsused heleduse ja värvide erinevuse signaalide eraldamisel analoogkomposiitsignaalist jne.

Müra hulk pildil võib ulatuda peaaegu märkamatust täpist heas valguses tehtud digifotol kuni astronoomiliste piltideni, mille puhul müra varjab ära suure osa kasulikust teabest, mida on võimalik saada vaid vaevalise pilditöötlusega.

Müra on erinevat tüüpi, olenevalt müra juhusliku jaotuse olemusest pildil. Praktikas on kõige levinumad järgmised tüübid:

Valge Gaussi müra

Üks levinumaid müra on aditiivne Gaussi müra, mida iseloomustab normaaljaotuse ja nullkeskmise väärtuste lisamine pildi igale pikslile. Mõiste "lisand" tähendab, et kasulikule signaalile lisatakse seda tüüpi müra. Tekib siis, kui signaali vastuvõtt on halb.

Digitaalne müra

Digimüra põhjus on kõige sagedamini seotud pildistamiseks kasutatava varustuse iseärasustega – tavaliselt maatriksi ebapiisava valgustundlikkusega. Seda tüüpi müra iseloomustab osade pikslite asendamine pildil fikseeritud või juhusliku väärtusega väärtustega. Kui punktide heledus on ligikaudu võrdne, nimetatakse digitaalset müra ka "impulsiks". Kui täppide intensiivsus võib varieeruda mustast valgeni, nimetatakse seda müra soola ja pipra müraks.

Tavaliselt mõjutab seda tüüpi müra pildil vaid väikest arvu piksleid.

Kombineeritud müra

Juhtumeid, kus võrdse helitugevusega kujutis on Gaussi müra ja juhuslike impulsside müraga, on palju harvem. Seda komplekti nimetatakse kombineeritud müraks.

Pildi skannimise defektid

Samuti võivad pildile ilmuda kõrvalised efektid, nagu praod, kriimud, verevalumid. Nendel artefaktidel ei ole homogeenset struktuuri ning nende kuju ja asukoha kindlaksmääramine on matemaatilisest analüüsist suures osas väljaspool. Seda tüüpi defekte saab kõrvaldada ainult käsitsi pilditöötlusega, mistõttu neid käesolevas töös ei käsitleta.

Müra eemaldamise algoritmid

Piltidelt müra eemaldamiseks on olemas suur hulk algoritme ja neid saavad kasutada lisaks spetsiaalsetele töötlusprogrammidele ka mõned foto- ja videokaamerad. Sellele vaatamata pole universaalset filtreerimisalgoritmi endiselt olemas, kuna pilditöötluse ajal on alati vaja valida soovimatute efektide kõrvaldamise astme ja müraga sarnaste omadustega väikeste detailide säilimise vahel. Lisaks saab ühte tüüpi müraga kergesti toime tulev algoritm pilti ainult teist tüüpi müraga rikkuda.

Vaatleme mitmeid kõige tuntumaid pildimüra summutamise algoritme.

Lineaarne pikslite keskmistamine

Lihtsaim idee müra eemaldamiseks on ruumilise naabruskonna piksliväärtuste keskmistamine. Kuna müra muutub pikslitest pikslitesse sõltumatult, siis kõrvutiasetsevate pikslite müra lisamisel üksteist kustutada. Määratakse ristkülikukujuline aken, mis kantakse kordamööda pildi igale pikslile. Keskpiksli väärtus arvutatakse kõigi naaberpikslite analüüsi põhjal, mis jäävad aknaalasse. Seega, mida suurem on aken, seda suurem keskmine väärtus lõpuks saadakse, mis toob kaasa tugeva hägususe.

Lihtsaimas versioonis on naaberpikslite analüüs nende aritmeetilise keskmise leidmiseks. Vaadeldavaga samasse piirkonda mittekuuluvate pikslite mõju vähendamiseks (näiteks tume piirjoon heledal taustal) saate sisestada teatud arvulise läve ja arvestada arvutamisel ainult neid naabreid, mille erinevus keskpikslist ei ületa seda läve. Mida kõrgem on läviväärtus, seda tugevam on keskmistamine. Vaadeldav valik võib olla keeruline, kui lisate iga naaberpiksli kaalukoefitsiendid sõltuvalt nende kaugusest vaadeldava ala keskpunktist.

Seda meetodit saab rakendada ka ajapiirkonnas, arvutades iga piksli keskmistamise videovoo kõrvuti asetsevate kaadrite kohta (iga piksli keskväärtuse aluseks on pikslid, mis asuvad naaberkaadrites samas kohas).

See algoritm on väga lihtne, kuid ei anna head tulemust, samas toob kaasa pildi detailide tugeva hägustumise.

Gaussi filter

Sellel on eelmise meetodiga sarnane tööpõhimõte ja see kuulub ka silumisfiltrite arvu. Müra vähendamisel lineaarse keskmistamisfiltri abil on aga märkimisväärne puudus: kõik töödeldud piksli naabrid mõjutavad tulemust samamoodi, sõltumata nende kaugusest selleni. Gaussi filter keskmistab ka keskpiksli ja selle naabrid teatud piirkonnas, ainult see toimub kindla seaduse järgi, mille määrab Gaussi funktsioon.

Kui parameeter y määrab hägususe hulga ja parameeter A tagab normaliseerimise. Selle tulemusena on vaadeldava ala keskpikslil suurim väärtus, mis vastab Gaussi jaotuse tipule. Ülejäänud elementide väärtustel on keskpunktist kauguse suurenedes üha vähem mõju.

Näidatud valemi järgi arvutatud maatriksfiltrit nimetatakse Gaussi filtriks; mida suurem on selle suurus, seda tugevam on hägusus (fikseeritud y-ga). Kuna see filter on eraldatav, võib seda esitada järgmiselt:

Sellest järeldub, et konvolutsiooni saab teostada järjestikku ridade ja veergude kaupa, mis toob kaasa meetodi olulise kiirenduse suurte filtrisuuruste puhul.

2Dcleaneri algoritm

Asendab pildil iga piksli naaberpikslite keskmisega, mis on võetud teatud raadiusega piiratud alal. Sel juhul ei võeta arvesse kõiki raadiuses olevaid punkte, vaid ainult neid, mille väärtus erineb keskpikslist mitte rohkem kui mingi ettemääratud väärtuse (läve) võrra. See muudab ühtlaselt värvitud alad rohkem häguseks kui objektide teravad servad. See vähendab pildi madalat müra, säilitades samal ajal peened detailid.

Keskmine filtreerimine

Lineaarsed algoritmid osutuvad Gaussi müra summutamisel väga tõhusaks, kui naaberpikslid, kuigi neil on teatud juhuslik väärtuste jaotus, jäävad siiski teatud keskmise väärtuse piiresse, mis on iseloomulik piirkonnale, kuhu nad kuuluvad. Kuid mõnikord peate tegelema piltidega, mida moonutavad muud tüüpi häired. Sellise häire näiteks on impulssmüra, mis avaldub juhuslikult hajutatud juhusliku heledusega punktide olemasolus pildil. Sel juhul keskmistamine "määrib" iga sellise punkti naaberpiksliteks, mis viib pildikvaliteedi halvenemiseni.

Standardne viis impulssmüra summutamiseks on mediaanfiltreerimine. See mittelineaarne pilditöötlustehnika välistab kõrvalekalded, kuid erinevalt lineaarsetest keskmistamisalgoritmidest jätab monotoonsed pikslite jadad muutmata. Tänu sellele suudavad mediaanfiltrid moonutamata säilitada objektide kontuure ja erineva heledusega alade erinevusi, summutades samal ajal tõhusalt korrelatsioonita müra ja väikese suurusega detaile.

Filtreerimispõhimõte: seatakse teatud paaritu suurusega aken, mis kantakse järjestikku igale pildi pikslile. Kõikide vaadeldava ala pikslite hulgast, sealhulgas keskpunktis, otsitakse mediaanväärtust, mis lõpuks määratakse ala keskpikslile. Sel juhul tähendab mediaan piirkonda kuuluva sorteeritud piksliväärtuste massiivi mediaanelementi. Paaritu akna suurus valitakse täpselt selleks, et tagada mediaanpiksli olemasolu.

Valge Gaussi müra summutamiseks pildil on võimalik kasutada mediaanfiltrit. Müra summutamise uuring mediaanfiltreerimisega näitab aga, et selle efektiivsus selle probleemi lahendamisel on madalam kui lineaarsel filtreerimisel.

Mediaanfiltreerimisel pole enamikule mürasummutavatele filtritele omane puudus – maski suuruse suurendamine mürasummutuse parandamiseks viib pildi selguse vähenemiseni ja selle kontuuride hägususeni. Küll aga on võimalik minimeerida negatiivseid mõjusid rakendades mediaanfiltratsiooni dünaamilise maski suurusega (additive mediaan filtering), mille põhimõte jääb samaks, ainult libiseva filtreerimisakna suurus võib muutuda olenevalt naaberpikslite heledusest.

Pildi teravustamine

Peaaegu kõik pildil oleva müra summutamise algoritmid viivad selle hägustumiseni, mille tagajärjel lähevad kaduma väikesed detailid ja pildi tajumine on keeruline. Pildi teravusfilter suudab seda negatiivset mõju osaliselt kompenseerida ning taastada kontuuride kaotatud kontrasti ja värvide üleminekud. Teravus võib sõltuda ka paljudest muudest teguritest – objektiivi kvaliteedist, kasutatavast avast, enamiku digikaamerate maatriksil leiduva antimuaarefiltri paksusest, mis muudab pildi erineval määral häguseks. Samuti tuleb piltide teravust sageli peale nende suuruse vähendamist suurendada, sest nii kaob paratamatult osa infost ja koos sellega ka kontuuride selgus.

Ebaterava maskeerimine on tehnika, mis võimaldab pildi toonide vaheliste üleminekute kontrasti suurendamise abil parandada selle visuaalset tajumist teravuse illusiooni tõttu. Tegelikult jääb teravus samale tasemele, sest põhimõtteliselt ei ole võimalik kaotatud pildi detaile taastada, kuid kontrasti parandamine erineva heledusega alade vahel viib selleni, et pilt tajutakse selgemana.

Joonis 5.1 – mõiste "kontuuri teravus" illustratsioon

Pildi teravus sõltub selle kontuuri moodustavate alade (W) heleduse erinevuse suurusest ja selle erinevuse muutuse teravusest (H).

Ebaterava maskeerimise tehnikat kasutati esmakordselt filmifotode töötlemiseks. Digitaalseks pilditöötluseks kohandatud meetod erineb algsest vähe: pildist lahutatakse nn ebateravus mask - selle udune ja ümberpööratud koopia. Tulemuseks on uus pilt, mis sisaldab ainult originaali heledaid piirjooni. Tumedad piirjooned saadakse tulemuse lihtsalt ümberpööramisel.

Kui edaspidi lahutate originaalpildist tumedad piirjooned ja lisate heledad, saate iga heleduse erinevuse korral kontrasti oluliselt suurendada.

Originaali hägustamiseks võite kasutada mis tahes mürasummutavaid filtreid, näiteks Gaussi filtrit, et saada ebaterav mask.

Joonis 5.2 – Ebaterava maskeerimise tulemus

Pilditöötluses kasutatakse üsna sageli konvolutsioonioperatsiooni. Lisaks teritamisele kasutatakse seda hägustamiseks, heleduse suurendamiseks, valgustamiseks jne.

Pildi konvolutsioon on antud piksli uue väärtuse arvutamine, mis võtab arvesse ümbritsevate naaberpikslite väärtusi. Üldises mõttes tähendab see termin mingit toimingut, mis tehakse pildi iga osaga.

Konvolutsiooni põhielement on konvolutsioonimask – see on maatriks (suvalise suuruse ja kuvasuhtega). Seda maski nimetatakse sageli filtriks, tuumaks, mustriks või aknaks. Maatriksi elementide väärtusi nimetatakse tavaliselt koefitsientideks.

Kõige sagedamini kasutatakse konvolutsioonituumana ruutmaatriksit.

Kujutise töötlemine konvolutsioonioperatsiooniga on järgmine: Maatriksi keskne element, mida nimetatakse ankruks, kantakse järjestikku kujutise iga piksli peale. Vaadeldava piksli uus väärtus arvutatakse naaberpikslite väärtuste summana, korrutatuna konvolutsioonimaski vastavate koefitsientidega.

Saadud efekt sõltub valitud konvolutsioonituumast.

Kontrastsust suurendava filtri südamiku väärtus on suurem kui 1 punktis (0, 0), kusjuures kõigi väärtuste summa on 1. Näiteks kontrasti suurendav filter on filtrid, mille tuumad on määratlenud maatriksid:

Kontrastsuse suurendamise efekt saavutatakse sellega, et filter rõhutab külgnevate pikslite intensiivsuse erinevust, eemaldades need intensiivsused üksteisest. See efekt on seda tugevam, seda suurem on tuuma keskliikme väärtus.

Konvolutsioonipõhine lineaarne kontrasti suurendav filtreerimine võib tekitada pildi servade ümber nähtavaid värvihalo.

Valgustuse erinevuse kompenseerimine

Kujutise valgustusprobleemid tekivad kõige sagedamini siis, kui kaadrisse satuvad aknad, päike või muud reguleerimata valgusallikad.

Seda olukorda nimetatakse "liigvalguseks" ja see toob kaasa asjaolu, et liiga ereda tugivalgustuse tõttu kaovad liiga eredate objektide taustal asuvate objektide detailid ja värv, muutudes raskesti eristatavaks.

Levinud on ka valguse puudumise olukord. Põhjuseks võib olla pildistamine hämaras ja halva valgustusega ruumides, samuti videotehnika piiratud tundlikkuse ulatus.

Single Scale Retinex Algorithm

Kui proovite pilti heledamaks muuta, suurendades iga piksli heledust teatud fikseeritud väärtuse võrra, võivad algselt heledad alad täielikult tuhmuda.

Sellistel juhtudel on vaja rakendada “nutikat” värviparandust, mis suudaks pildi valgustust ühtlustada, töötledes heledaid alasid vähemal määral kui tumedaid.

Neid nõudeid täidab Single Scale Retinex algoritm, mis põhineb võrkkesta retseptori disaini põhimõtetel. Algoritmi põhieesmärk on jagada pilt komponentideks, mis vastutavad eraldi valgustuse ja detailide eest. Kuna pildil olevad probleemid on seotud stseeni valgustusega, siis pärast valgustuse eest vastutava komponendi saamist on võimalik seda pildist eraldi teisendada, tõstes seeläbi oluliselt selle kvaliteeti.

Mis tahes kujutist saab esitada kõrgsagedusliku signaali (peegeldus - R) ja madala sagedusega signaali (valgustus - I) korrutis.

S (x, y) = I (x, y) * R (x, y) (5,6)


Joonis 5.3 - Pildi esitus Retinexi algoritmis.

Ligikaudse pildi valgustusest saab madalpääsfiltrimise abil – teisisõnu, lihtsalt hägustada algset pilti näiteks Gaussi filtriga.

kus G – Gaussi filter

Kuna signaali logaritm sagedust ei muuda ja tulenevalt logaritmilise funktsiooni omadustest (korrutise logaritm võrdub tegurite logaritmide summaga), võib signaalide korrutise jagamise probleem olla lihtsustatud signaalide summa jagamise probleemiga.

Pärast seda jääb üle vaid võtta vastuvõetud signaalist eksponent, et naasta see algsele amplituudiskaalale. Saadud kõrgsagedusliku komponendi saab lisada udusele ja heledale originaalpildile, mis toimib uue valgusmudelina.

Valgustuse ühtlustamisel saadav efekt võib olla liiga tugev (tumedate alade heledus on heledate alade heledus). Efekti vähendamiseks saate töödeldud pildi lihtsalt teatud proportsioonis originaaliga sulanduda.

Gamma korrektsioon

Gammakorrektsiooni algne eesmärk on kompenseerida erinevatel väljundseadmetel kuvatavate värvide erinevusi, et pilt näeks erinevatelt monitoridelt vaadates ühesugune. Tänu rakendatud võimsusfunktsiooni mittelineaarsele välimusele võimaldab gammakorrektsioon suurendada ka pildi tumedate alade kontrasti, ilma eredaid detaile ülevalgustamata ja kaotamata pildil olevate objektide servade eristatavust.

Teave heleduse kohta nii televisioonis analoogkujul kui ka digitaalsel kujul enamikes graafilistes vormingutes salvestatakse mittelineaarses skaalas. Piksli heledust monitori ekraanil võib pidada proportsionaalseks

kus I on kuvari piksli heledus (või värvikomponentide heledus, punane, roheline ja sinine eraldi),

V on värvi arvväärtus vahemikus 0 kuni 1 ja

d - gamma korrektsiooni indikaator.

Kui r on väiksem kui 1, siis on tasemete ülekandekarakteristikud kumerad ja saadud pilt on originaalist heledam. Kui r on suurem kui 1, siis on tasemete ülekande omadused nõgusad ja saadud pilt on originaalist tumedam.

Vaikimisi on r-parameeter võrdne 1-ga, mis vastab tasemete ülekande lineaarsele karakteristikule ja gammakorrektsiooni puudumisele.

Pildi kontuuride valimine

Kontuurianalüüsi abil saab kirjeldada, ära tunda, võrrelda ja otsida piirjoontena kujutatud graafilisi objekte. Kuna kontuuride kasutamine välistab objekti sisemised punktid, võib see oluliselt vähendada nende toimingute arvutuslikku ja algoritmilist keerukust.

Joonis 5.4 - Võimsusfunktsiooni kuju muutumine sõltuvalt parameetrist r

Objekti piirjoon on punktide loend, mis kujutavad pildil teatud kõverat, mis eraldab objekti taustast. Kõige sagedamini täheldatakse piki kontuuri heleduse või värvi hüpet.

Pildi kontuuride otsimise lihtsustamiseks saate selle eelnevalt binaarseks muuta.

Sobeli filter valib objektide piirid nende heleduse alusel. Kuna värvikomponenti ei võeta arvesse, tuleb pildid esmalt halltoonides teisendada.

Sobeli filtrit rakendatakse järjestikku igale pikslile, arvutades selle heleduse gradiendi ligikaudse väärtuse. Pildi iga punkti gradient (heleduse funktsioon) on kahemõõtmeline vektor, mille komponendid on kujutise heleduse horisontaalsed ja vertikaalsed tuletised.

Pildi igas punktis on gradiendvektor orienteeritud heleduse suurima suurenemise suunas ja selle pikkus vastab heleduse muutuse suurusele. Need andmed võimaldavad teha oletuse vaatlusaluse punkti leidmise tõenäosuse kohta teatud objekti piiril, aga ka selle piiri orientatsiooni kohta.

See. Sobeli operaatori töö tulemuseks püsiva heledusega piirkonna punktis on nullvektor ja erineva heledusega piirkondade piiril asuvas punktis - vektor, mis ületab piiri heleduse suurendamise suunas.

Tuletiste ligikaudsete väärtuste arvutamiseks pildi igas punktis kasutab Sobeli filter konvolutsiooni 3 × 3 maatriksiga.

Sobeli maatriksi koefitsiendid:

Gradiendi lõppväärtus arvutatakse ligikaudselt järgmise valemiga:

| G | = | Gx | + | Gy |

Kenny piiridetektor

Kuigi Kenny tööd viidi läbi arvutinägemise algusaegadel (1986), on Kenny piiridetektor endiselt üks parimaid detektoreid. Kenny meetod on mitmeastmeline algoritm ja sisaldab järgmisi samme:

1. Pildi puhastamine mürast ja ebavajalikest detailidest.

2. Pildi puhastamine mürast ja ebavajalikest detailidest.

3. Otsige kujutise gradiente näiteks operaatori Sobel järgi.

4. Mittemaksimumide allasurumine. Piiridena on märgitud vaid kohalikud kõrgpunktid.

5. Topeltläve filtreerimine. Potentsiaalsed piirid on määratletud künnistega.

6. Jälgige teid (linkige servad teedega)

Kuna pildi väikseimgi müra võib rikkuda selle kontuuride terviklikkust, on soovitatav pilt enne otsingu alustamist filtreerida mis tahes müra vähendamise meetodiga. Tänu suurele töökiirusele ja rakendamise lihtsusele kasutatakse kõige sagedamini Gaussi filtrit. Pildi servad võivad olla eri suundades, seega kasutab Kenny algoritm horisontaalsete, vertikaalsete ja diagonaalsete servade tuvastamiseks nelja filtrit. Kasutades piirituvastusoperaatorit (näiteks Sobeli operaatorit), saadakse esimese tuletise väärtus horisontaalsuunas (Gy) ja vertikaalsuunas (Gx). Sellest gradiendist saate piiri suuna nurga:

Piirisuuna nurk on ümardatud ühe neljast nurgast, mis tähistavad vertikaalset, horisontaalset ja kahte diagonaali (näiteks 0, 45, 90 ja 135 kraadi). Piiridena deklareeritakse ainult need pikslid, milles on saavutatud gradiendi vektori suunaline lokaalne gradiendi maksimum. Suuna väärtus peab olema 45 ° kordne. Peale non-maxima allasurumist muutuvad servad täpsemaks ja õhemaks.

Järgmises etapis tehakse iga vaadeldava piksli lävifiltrimise teel kindlaks, kas see kuulub pildi piiridesse. Mida kõrgem on lävi, seda ühtlasemad on leitud kontuurid, kuid nõrku servi võib ignoreerida. Teisest küljest suurendab läve vähendamine algoritmi vastuvõtlikkust mürale. Kenny piirivalik kasutab kahte filtreerimisläve: kui piksli väärtus on ülemisest piirist kõrgem, võtab see maksimaalse väärtuse (piir loetakse kehtivaks), kui see on madalam, siis piksel suletakse, punktid, mille väärtus jääb vahemikku lävedel on fikseeritud keskmine väärtus (neid täpsustatakse järgmises etapis).

Pilditöötluse viimane etapp on üksikute servade sidumine ühtlasteks kontuurideks. Eelmises etapis keskmise saanud pikslid kas summutatakse (kui need ei puuduta ühtegi juba tuvastatud serva) või kinnitatakse vastavale kontuurile.

Segmenteerimine

Enamik foto- ja videotehnikast saadud kujutisi on raster ehk koosnevad ristkülikukujulises ruudustikus paiknevatest värvilistest punktidest. Inimesed tajuvad ümbritsevat maailma aga tervete objektide kogumina, mitte punktide maatriksina. Inimese aju on võimeline ühendama kujutise erinevad detailid homogeenseteks piirkondadeks, jagades selle alateadlikult objektideks. Seda protsessi nimetatakse segmenteerimiseks ja seda saab programmiliselt rakendada arvutikujutise analüüsi ja mustrituvastuse probleemi lahendamisel. Segmenteerimine toimub analüüsi varajases staadiumis ning selle teostamise kvaliteet võib oluliselt mõjutada selle kiirust ja täpsust.

Segmenteerimismeetodid võib jagada kahte klassi: automaatne – ei nõua kasutaja sekkumist ja interaktiivne – kasutab protsessis otse kasutaja sisendit.

Esimesel juhul ei kasutata a priori teavet piirkondade omaduste kohta, vaid pildi enda jaotusele seatakse teatud tingimused (näiteks peavad kõik piirkonnad olema värvi ja tekstuuri poolest ühtsed). Kuna see segmenteerimisprobleemi sõnastus ei kasuta a priori teavet kujutatud objektide kohta, on selle rühma meetodid universaalsed ja rakendatavad mis tahes kujutiste puhul.

Konkreetse probleemi meetodi kvaliteedi ligikaudseks hindamiseks registreeritakse tavaliselt mitu omadust, mis hea segmenteerimise korral peaksid olema:

§ piirkondade ühtlus (värvi või tekstuuri ühtlus);

§ naaberpiirkondade erinevus;

§ piirkonna piiri siledus;

§ väike arv väikesi "auke" piirkondade sees;

Läve segmentimine

Lävendamine on lihtsaim pilditöötlusele keskendunud meetod, mille üksikud homogeensed alad erinevad keskmise heledusega. Kui aga pilt on ebaühtlaselt valgustatud, võib osade objektide intensiivsus langeda kokku taustaga, mis muudab läve segmenteerimise ebaefektiivseks.

Lihtsaim ja samal ajal sageli kasutatav läve segmenteerimise tüüp on binaarne segmenteerimine, kui pildil eristatakse ainult kahte tüüpi homogeenseid alasid.

Sel juhul toimub lähtepildi iga punkti teisendamine väljundiks vastavalt reeglile:

kus x0 on ainus töötlemise parameeter, mida nimetatakse läveks. Väljundi heledustasemed y0 ja y1 võivad olla suvalised, need toimivad ainult siltidena, mille abil märgitakse saadud kaart - määrates selle punktid vastavalt klassidesse K1 või K2. Kui saadud toodet valmistatakse ette visuaalseks tajumiseks, vastavad nende väärtused sageli musta ja valge värvi tasemele. Kui klasse on rohkem kui kaks, siis tuleb lävendamisel seada lävendite perekond, mis eraldab erinevate klasside heleduse üksteisest.

Läve segmentimine sobib hästi väikese arvu mittelõikuvate objektide valimiseks pildil, millel on homogeenne struktuur ja mis paistavad teravalt taustast välja. Kujutise heterogeensuse astme ja seega ka segmentide arvu ja nende keerukuse suurenemisega muutub seda tüüpi segmenteerimine ebaefektiivseks.

Segmenteerimine graafiku tükeldamisel

Graafiteooria meetodid on kujutiste segmenteerimisel üks aktiivsemalt arenevaid valdkondi.

Selle rühma meetodite üldidee on järgmine. Pilt esitatakse kaalutud graafiku kujul, mille tipud on pildi punktides. Graafiku serva kaal peegeldab punktide sarnasust teatud mõttes (punktide vaheline kaugus teatud mõõdikus). Kujutise poolitamist modelleeritakse graafikute abil.

Tavaliselt võetakse graafiteooria meetodites kasutusele lõike "kulu" funktsionaal, mis peegeldab saadud segmenteerimise kvaliteeti. Seega taandatakse kujutise jagamise probleem homogeenseteks aladeks optimeerimisprobleemiks, milleks on graafikul minimaalse maksumuse lõike leidmine. Selline lähenemine võimaldab lisaks segmentide värvi ja tekstuuri ühtsusele kontrollida segmentide kuju, suurust, piiride keerukust jne.

Minimaalse maksumuse lõike leidmiseks kasutatakse erinevaid meetodeid: ahned algoritmid (iga sammu juures valitakse selline serv, et lõike kogumaksumus oleks minimaalne), dünaamilised programmeerimismeetodid (tagatakse, et valides optimaalse serva igal sammul jõuame optimaalse tee juurde), algoritm Dijkstra jne.

Interpolatsioon

Arvutigraafikas kasutatakse interpolatsiooni meetodit sageli piltide skaala muutmise protsessis. Muutes pildi pikslite arvu, aitab interpoleerimine vältida pildi liigset pikslimist suurendamisel või oluliste detailide kadumist selle vähendamisel.

Interpolatsiooni käigus sisestatakse pildi pikslite vahele lisapunkte, mille hinnanguline toon ja värvus arvutatakse spetsiaalse algoritmi abil, mis põhineb olemasolevate andmete analüüsil naaberalade kohta. Kahjuks, kuna igasugune interpolatsioon on vaid ligikaudne, kaotab kujutise interpoleerimisel alati kvaliteet.

Lähima naabri interpolatsioon

See algoritm on kõige lihtsam interpolatsiooni tüüp, mis suurendab lihtsalt pildi iga pikslit vajaliku skaalani. Nõuab kõige vähem töötlemisaega, kuid annab halvimaid tulemusi.

Bilineaarne interpolatsioon

Seda tüüpi interpolatsioon tehakse kahemõõtmelise ruudustiku iga koordinaadi jaoks. Sel juhul käsitletakse pilti pinnana, värv on kolmas mõõde. Kui pilt on värviline, viiakse interpoleerimine läbi kolme värvi jaoks eraldi. Iga uue pildi tundmatu punkti puhul arvestab bilineaarne interpolatsioon nelja ümbritseva teadaoleva piksli ruutu. Interpoleeritud väärtusena kasutatakse nende nelja piksli kaalutud keskmist. Selle tulemusena näevad pildid oluliselt sujuvamad kui lähima naabri meetodi tulemus.

Bilineaarne interpolatsioon töötab hästi suurte täisarvude skaleerimistegurite korral, kuid see hägustab pildi teravaid servi üsna palju.

Bikuubiline interpolatsioon läheb sammu võrra kaugemale kui bilineaarne interpolatsioon, võttes arvesse 4x4 ümbritsevate pikslite massiivi – ainult 16. Kuna need asuvad tundmatust pikslist erineval kaugusel, kaalutakse arvutuses rohkem lähimaid piksleid. Bicubic interpolatsioon annab oluliselt teravamaid pilte kui kaks eelmist meetodit ning on vaieldamatult optimaalne töötlemisaja ja väljundi kvaliteedi osas. Sel põhjusel on see muutunud paljude pilditöötlusprogrammide (sh Adobe Photoshop), printeridraiverite ja sisseehitatud kaamera interpolatsiooni standardiks.

Skaleeritud pilt võib muutuda palju vähem teravaks. Interpolatsioonialgoritmid, mis säilitavad teravuse paremini, on ka muareele vastuvõtlikumad, samas kui need, mis välistavad muaree, annavad tavaliselt pehmema tulemuse. Kahjuks on see skaleerimise kompromiss vältimatu.

Üks parimaid viise selle vastu võitlemiseks on kasutada ebateravat maski kohe pärast skaleerimist, isegi kui originaal on juba teritatud.

5.2 Alamsüsteemis kasutatavate algoritmide valiku põhjendus

Väljatöötatud tarkvarapaketi põhinõue oli minimeerida videovoo taasesituse viivitust selle eeltöötluse ajal arvutusklastris. Lisaks võib pildistamine toimuda mis tahes tingimustes, mis tähendab, et lühikese aja jooksul oli vaja rakendada suur hulk lihtsaid filtreid erinevate negatiivsete mõjude neutraliseerimiseks. Lisaks oli vaja lühikese aja jooksul uurida suurt hulka videol ilmuvaid negatiivseid tegureid ja rakendada lihtsaid filtreid nende neutraliseerimiseks. Algoritmid, mis vastavad esitatud nõuetele, peaksid olema hõlpsasti kättesaadavad, hästi optimeeritud, väga töökindlad ja samal ajal hõlpsasti rakendatavad. OpenCV teegi funktsioonidel on sellised omadused, seetõttu eelistati videovoo töötlemiseks filtrite rakendamiseks konkreetsete meetodite valimisel ühel või teisel kujul selles teegis sisalduvaid algoritme.

Kõik lõputöö teoreetilises osas käsitletud algoritmid realiseeriti testvormis, et võrrelda nende omadusi praktikas. Eelkõige eelistati kompromissi videovoo kaadri töötlemiskiiruse ja saadud tulemuse kvaliteedi vahel.

Selle tulemusena valiti arvutiklastris videovoo töötlemise filtrite rakendamiseks järgmised algoritmid:

1. Lisatava valge müra eemaldamiseks valiti Gaussi algoritm. Kõige tavalisema müravähendusmeetodina on see väga hästi optimeeritud ja seetõttu kõrge töökiirusega.

2. Lisatava valge müra eemaldamiseks valiti Gaussi algoritm. Kõige tavalisema müravähendusmeetodina on see väga hästi optimeeritud ja seetõttu kõrge töökiirusega.

3. Impulssmüra eemaldamiseks valiti mediaanfiltreerimine. See meetod on samuti hästi optimeeritud ja loodud spetsiaalselt impulsside ja soola-pipra müra kõrvaldamiseks.

4. Konvolutsioon valiti pildi teravuse suurendamiseks, kuna see töötab palju kiiremini kui ebateravus maskeerimine, andes samal ajal vastuvõetavaid tulemusi.

5. OpenCV teek ei sisalda värviparandusalgoritme – seetõttu otsustati juurutada kõige levinum ja paremini dokumenteeritud Single Scale Retinex algoritm. See meetod on väga tõhus, kuid nõuab optimeerimist töökiiruse kiirendamiseks.

6. Kontuuride eraldamise meetodiks valiti Kenny algoritm, kuna see annab paremaid tulemusi kui Sobeli filter.

7. OpenCV teegis esitatud püramiidsegmenteerimisalgoritm töötab äärmiselt aeglaselt, mistõttu otsustati graafikutel kasutada eelnevalt käsitletud segmenteerimisalgoritmi.

8. interpolatsioon - töö kiiruse ja tulemuse kvaliteedi vahel valiti kõige mõistlikumaks kompromissiks kahekuubiline interpolatsiooni meetod.

Kasutatava tarkvara installimine ja seadistamine.

Kasutatud arvutusklastris töötas GNU Linux (Ubuntu)

Pärast operatsioonisüsteemi installimist peate installima mitu teeki, mis toetavad pildifailide lugemist ja kirjutamist, ekraanile joonistamist, videoga töötamist jne.

CMake'i installimine

Projekt on üles ehitatud CMake'i abil (vajalik on versioon 2.6 või uuem). Saate selle installida käsuga:

apt-get install cmake

Teil võib vaja minna ka järgmisi teeke:

build-essential libjpeg62-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev libeigen2-dev libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev

ffmpeg installimine

Opencv videofailide korrektseks töötlemiseks peab olema installitud ffmpeg teek. Seda tehakse järgmiste käskudega:

1) Teegi lähtekoodide allalaadimine

wget http://ffmpeg.org/releases/ffmpeg-0.7-rc1.tar.gz

2) Arhiivi lahtipakkimine lähtekoodidega

tar -xvzf ffmpeg-0.7-rc1.tar.gz

3) Raamatukogu konfiguratsioon

seadistamine --enable-gpl --enable-version3 --enable-nonfree --enable-postproc

Enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb

Enable-libtheora --enable-libvorbis --enable-libxvid --enable-x11grab

Enable-swscale --enable-shared

4) Raamatukogu ehitamine ja paigaldamine

GTK installimine

OpenCV akende kuvamiseks on installitud GTK + 2.x või uuem teek, sealhulgas päisefailid (libgtk2.0-dev)

apt-get install libgtk2.0-dev

Opencv installimine

Pärast kõigi seotud teekide installimist teostatakse opencv2.2 installimine järgmiste käskudega:

1) OpenCV teegi lähtekoodide allalaadimine

http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.2/OpenCV-2.2.0.tar.bz2

2) Arhiivi lahtipakkimine lähtekoodidega

tar -xvf OpenCV-2.2.0.tar.bz2

3) Makefile'i genereerimine CMake'i abil.

4) OpenCV raamatukogu ehitamine ja paigaldamine

5) Võimalik, et peate registreerima ka teekidesse viimise tee

eksportida LD_LIBRARY_PATH = / usr / local / lib: $ LD_LIBRARY_PATH

Väljatöötatud tarkvarapaketi installimine ja koostamine

Programmide lähtekoodid on vaja kopeerida käesolevale seletuskirjale lisatud plaadilt. Kopeerige pakettfail build_all.sh samasse kausta ja seejärel käivitage see. Kui süsteemi on installitud gcc-kompilaator, toimub ehitamine automaatselt.

DIGITAALNE RAVI SIGNAALID

Teema 17. PILDIDE TÖÖTLEMINE

Pole midagi, ükskõik mida inimese kujutlusvõime julgeks.

Tiitus Lucretius. Rooma filosoof ja poeet. 1. sajand eKr e.

Kujutlusvõime on hea asi. Aga keldrist päkapiku välja toomine, pesu pesemine, Apolloks muutmine, tikutopsi pakkimine ja sõbra sõbrale meili saatmine, läheb hea graafikaprogrammiga paremini.

Anatoli Põšmintsev, Uurali koolkonna Novosibirski geofüüsik. XX sajand

Sissejuhatus.

1. Põhimõisted. Piltide graafiline esitus. Värvi kujutamine arvutigraafikas. RGB värvimudel. CIE XYZ värvisüsteem.

2. Rasterkujutiste geomeetrilised teisendused. Transformatsiooni valdkonnad ja etapid. Proovide võtmine. Kahemõõtmelise signaali rekonstrueerimise interpolatsiooniseeria. Kujutiste sagedusmoonutused ja nende kõrvaldamine. Piltide uuesti proovivõtmine.

3. Piltide filtreerimine. Lineaarsed filtrid. Siluvad filtrid. Kontrastsed tõusvad filtrid. Erinevuste filtrid. Kahemõõtmeline tsükliline konvolutsioon. Mittelineaarsed filtrid. Läve filtreerimine. Keskmine filtreerimine. Ekstreemsed filtrid.

4. Piltide kokkusurumine. RLE (Repetition Length) kodeerimisalgoritmid. Sõnastiku algoritmid. Statistilised kodeerimisalgoritmid. Kadunud pildi tihendamine. Kujutise kadumise hinnang. Fourier' teisendus. Lainete teisendus.

SISSEJUHATUS

Digitaalse pildistamise valdkonna uuringute maht kasvab kiiresti. Seda seetõttu, et pilditöötlus on mitmemõõtmeline signaalitöötlus ja enamik signaale reaalses maailmas on mitmemõõtmelised.


Pilt matemaatilises esituses on kahemõõtmeline signaal, mis kannab tohutul hulgal teavet. 500 × 500 elemendist koosnev värvipilt on mitmesajast tuhandest baidist koosnev massiiv. Sellist teavet saab töödelda ainult arvutuste ratsionaalse korraldusega. Konkreetsete pilditöötlusülesannete jaoks saab rakendada tõhusaid töötlemistehnikaid, võttes arvesse selle konkreetse ülesande omadusi ja piiranguid. Aga kui me räägime pilditöötlusest laia klassi probleemide lahendamiseks, siis on vaja välja tuua standardsete toimingute kogum, millest on võimalik ehitada algoritme suvaliste probleemide lahendamiseks. Nende hulka kuuluvad lineaarsed teisendused, 2D konvolutsioon ja 2D diskreetsed Fourier teisendused.

Kuid mittelineaarseid teisendusi kasutatakse laialdaselt ka pilditöötluses. Kujutiste eripära seisneb selles, et pildi üksikud elemendid on teatud ühenduses naaberelementidega. Seetõttu on enamik kujutise teisendusalgoritme oma olemuselt lokaalsed, st nad töötlevad pilte elementide rühmade kaupa, mis asuvad antud elemendi ümber. Lineaarsed teisendused rahuldavad paikkonna omadust ja võimaldavad konstrueerida algoritme, mille arvutuslik keerukus sõltub vähe ümbritseva naabruskonna suurusest. Samu omadusi nõutakse piltide mittelineaarsete teisenduste puhul. Selliste teisenduste klassi kuuluvad algoritmid, mida nimetatakse järgu filtreerimise algoritmideks, mis põhinevad piltide kohaliku järjestuse statistika arvutamisel. Astestatistika ja nende tuletiste arvutamisel on võimalikud piltide teabeliiasusega seotud lihtsustused. Selle klassi kuulsaim algoritm on mediaanfiltreerimisalgoritm. Teised auaste algoritmide näited on äärmuslikud filtreerimisalgoritmid, mis asendavad analüüsitud pildielemendi naabruses oleva maksimumi või miinimumiga. Teine järjestusalgoritmide omadus on lokaalne kohanemine töödeldud pildi omadustega ja nende kasutamise võimalus mitte ainult silumiseks ja mürast puhastamiseks, vaid ka funktsioonide eraldamiseks automaatse pildituvastuse käigus.

Pilditöötluses kasutatakse laialdaselt ühemõõtmeliste signaalide töötlemise meetodeid, kui neid on võimalik üldistada mitmemõõtmelisteks signaalideks. Samas tuleb arvestada, et matemaatilised meetodid mitmemõõtmeliste süsteemide kirjeldamiseks ei ole täielikud. Mitmemõõtmelistel süsteemidel on suur hulk vabadusastmeid ja nende disain omandab paindlikkuse, mis ei ole ühemõõtmelistele süsteemidele omane. Samal ajal ei lagune mitmemõõtmelised polünoomid algteguriteks, mis raskendab mitmemõõtmeliste süsteemide analüüsi ja sünteesi.

17.1. Põhimõisted

Piltide graafiline esitus. Graafilise teabe esitamiseks kahemõõtmelisel tasapinnal (monitoriekraanil) kasutatakse kahte lähenemist: raster ja vektor.

Vektorkäsitluses kirjeldatakse graafilist teavet kui abstraktsete geomeetriliste objektide kogumit – jooned, lõigud, kõverad, ristkülikud jne. Vektorkirjeldus eeldab a priori teadmisi pildi struktuurist.

Rastergraafika töötab suvaliste rastrite kujul olevate kujutistega. Raster on pildi kirjeldus tasapinnal, jagades (diskretiseerides) selle tavalisel ruudustikul identseteks elementideks ning omistades igale elemendile oma värvi ja muud atribuudid. Lihtsaim raster on ristkülikukujuline, pildiedastuse näidiste arvu poolest ökonoomsem on kuusnurkne. Matemaatilisest vaatenurgast on raster pideva kujutise funktsiooni tasapinnal tükkhaaval konstantne lähendus.

Rasterelementi nimetatakse piksliks. Piksli standardtuvastus:


f (i, j) = (A (i, j), C (i, j)), (17.1.1)

kus A (i, j) Ì R2 - piksli pindala, C (i, j) Î C - piksli atribuut (tavaliselt värv). Kõige sagedamini kasutatakse kahte tüüpi atribuute:

C (i, j) = I (i, j) - pikslite intensiivsus (heledus);

C (i, j) = (R (i, j), G (i, j), B (i, j)) - värviatribuudid RGB värvimudelis.

Maatriksi kujul:

Mij ​​= (Aij, Cij).

Pidevate kujutiste diskretiseerimisel saab Aij väärtusi defineerida kahel viisil, kas punktide Aij = (i, j) väärtustena, mille jaoks on määratletud atribuudid Cij, või kui ruudud Aij = (i, i + 1) × (j, j + 1) või mis tahes muul kujul, kusjuures Cij määratakse selle vormi keskmiste väärtuste järgi (joonis 17.1.1).

Praktikas on X ja Y reeglina ruudu- või ristkülikukujulise rastri mittenegatiivsete täisarvude piiratud komplektid rastri laiuse ja kõrguse kuvasuhtega, mis on kirjutatud kujul, näiteks "4 : 3".

Värvi kujutamine arvutigraafikas. Värvuse mõiste põhineb inimese silmade tajumisel elektromagnetlainetest teatud sagedusvahemikus. Meie tajutava päevavalguse lainepikkused λ on 400 nm (violetne) kuni 700 nm (punane). Valgusvoo kirjeldus võib olla selle spektraalfunktsioon I (λ). Valgust nimetatakse monokromaatiliseks, kui selle spektril on ainult üks kindel lainepikkus.

Võrkkestal on kahte tüüpi retseptoreid: vardad ja koonused. Varraste spektraalne tundlikkus (joonis 17.1.2) on otseselt võrdeline langeva valguse heledusega. Koonused jagunevad kolme tüüpi, millest igaühel on teatud tundlikkus piiratud vahemikes, maksimaalselt punase, rohelise ja sinise värvi jaoks, ning kaotavad pimedas järsult oma tundlikkuse. Silma vastuvõtlikkus sinisele on oluliselt madalam kui kahele teisele. Inimese valgustaju oluline omadus on lineaarsus, kui kombineerida erineva lainepikkusega värve.

RGB värvimudel (Punane, roheline, sinine – punane, roheline, sinine) arvutigraafikas on praegu kõige levinum. Selles mudelis on spektraalfunktsioon esitatud tundlikkuskõverate summana igat tüüpi mittenegatiivsete kaalukoefitsientidega (normaliseeritud 0 kuni 1) koonuste jaoks, mis on tähistatud kui R, G ja B. Mudelit iseloomustatakse liitvusomaduse järgi uute värvide saamiseks. Näiteks spektraalfunktsioonide kodeerimine:

Must: fmust = 0, (R, G, B) = (0,0,0);

Lilla fvioletne = fred + fsinine, (R, G, B) = (1,0,1);

Valge fvalge = fred + froheline + fsinine, (R, G, B) = (1,1,1).

RGB-mudeli kolmemõõtmeline värviruum on näidatud joonisel fig. 17.1.3. Retseptorite valguse tajumise iseärasuste tõttu ei ole selles mudelis esindatavad kõik inimesele nähtavad värvid. Reprodutseeritavate värvide osakaal on aga palju suurem kui see, mida antud mudelis esindatud ei ole.

CIE XYZ värvisüsteem. Rahvusvaheline värviesituse standard CIE (CIE – Commission Internationale de l "Eclairage) võeti 1931. aastal vastu Rahvusvahelise Valgustuse Komisjoni poolt. See määratleb kolm põhifunktsiooni ρX (λ), ρY (λ), ρZ (λ), sõltuvalt mille lainepikkuste lineaarsed kombinatsioonid mittenegatiivsete koefitsientidega (X, Y ja Z) tekitavad kõik inimesele nähtavad värvid Need funktsioonid võtavad arvesse valguse intensiivsuse suhtelist tajumist silma retseptorite poolt Kolmemõõtmelises ruumis CIE värvisüsteem moodustab esimeses kvadrandis koonuse ja seda kasutatakse värvipiltide kvaliteetseks kuvamiseks.

17.2. Bitkaartide geomeetrilised teisendused

Transformatsiooni valdkonnad ja etapid. Pilte saab jagada tekstuuriks ja detailideks. Tekstuurikujutistes kannavad kõik näidised (elemendid) teavet (pilti teleriekraanil). Detailne pilt on pilt, millel saab esile tõsta segavaid objekte, tausta ja kasulikke objekte.

Arvutite pilditöötluseks on kolm peamist algoritmide rühma:

1. Esmane (esialgne) pilditöötlus taastamise eesmärgil, juhuslikust mürast puhastamine, kvaliteedi parandamine, optiliste süsteemide geomeetriliste moonutuste (defokuseerimine, aberratsioonid jne) korrigeerimine.

2. Piltide kirjeldus, mustrituvastus. Teostatakse pildi detailide parameetrite määramiseks ja sisaldab: valgustuse taseme ja värvi poolest ühtlaste kujutise alade leidmist, pildi kuju tunnuste esiletõstmist, objektide eripunktide koordinaatide määramist jne.

3. Tõhus kodeerimine edastuse ja salvestusmahu vähendamiseks.

Enamik eeltöötlusmeetodeid põhinevad lineaarse ruumiinvariantsete (LPI) filtrite kasutamisel. Lineaarsed algoritmid viiakse läbi ühemõõtmeliste FIR- ja IIR-filtrite kahemõõtmeliste analoogide abil. Neid saab kasutada näiteks piltide müra vähendamiseks filtrite rakendamisel.

FIR-filtrid on realiseeritud konvolutsioonimeetodil. 2D FIR-filtrite eeliseks on selgus, lihtsus ja absoluutne stabiilsus. IIR-filtrid rakendatakse diferentsiaalvõrrandite ja z-teisenduste abil. Need on kiiremad kui FIR-filtrid, kuid võivad olla ebastabiilsed. Kahemõõtmeliste IIR-filtrite süntees erineb ühemõõtmeliste filtrite sünteesist, kuna kahemõõtmelise funktsiooni jaoks ei ole võimalik pooluseid selgesõnaliselt valida.

Piltide taastamiseks ja nende kvaliteedi parandamiseks võib vaja minna ka mittelineaarseid meetodeid. Nii et näiteks müra summutamiseks ja samal ajal piltide kontuuriosa säilitamiseks on vaja kasutada mittelineaarseid või lineaarseid ruumiliselt mitteinvariantseid (LPNI) filtreid, mida rakendavad järjestusalgoritmid. Kõik auaste mittelineaarsed filtrid põhinevad kohalike histogrammide arvutamise kiiretel algoritmidel.

Üks neist meetoditest on mediaanfiltreerimine. Mediaanfiltrite kasutamine on tõhus teatud tüüpi müra ja perioodiliste häirete summutamiseks ilma samaaegselt signaali moonutamata, näiteks müra hüppeid, sealhulgas liini katkestusi, summutamiseks. Meetodit saab kasutada ka äratundmisega seotud probleemide lahendamiseks, näiteks õhukeste joonte ja väikeste isoleeritud objektide esiletõstmiseks.

Kujutiste kirjeldamise ja mustrituvastuse algoritmid on tavaliselt mittelineaarsed ja heuristilised. Objektide tunnusteks on tavaliselt objekti kujutise pindala, pildi kontuuri ümbermõõt, pindala ja pildi perimeetri ruudu suhe. Objekti kuju saab iseloomustada pildile kantud või objekti kujutise ümber kirjeldatud ringi raadiusega, minimaalse ja maksimaalse raadiuse-vektori pikkusega pildi “massikeskmest”.

Proovide võtmine. Piltide teisendused arvutis ja töödeldud andmete salvestamine toimub diskreetsel kujul. Diskreetset esitust kasutatakse reaalse maailma pidevatest analoogpiltidest diskreetse esituse saamiseks. Praktikas teostavad seda sisendseadmed (digikaamera, skanner või muud). Töödeldud kujutiste visuaalseks tajumiseks väljundseadmetes (ekraan, plotter jne) rekonstrueeritakse analoogkujutis vastavalt selle diskretiseeritud esitusviisile.

Mustvalgete piltide kõige lihtsamal juhul on meil kahemõõtmeline massiiv sa (x, y). RGB-mudeli värvipiltide puhul võib värvide lisamisel liiteomadust arvesse võttes käsitleda ka iga R, G ja B kihti ja töödelda seda kahemõõtmelise massiivina, millele järgneb tulemuste liitmine.

Ühemõõtmelise perioodilise valimi kahemõõtmeliseks juhtumiks üldistamise meetoditest on kõige lihtsam perioodiline diskreetimine ristkülikukujulistes koordinaatides:

s (n, m) = sa (nDx, mDy),

kus Dx ja Dy on kahemõõtmelise pideva signaali sa (x, y) horisontaalsed ja vertikaalsed diskreetimisintervallid pidevate x ja y koordinaatidega. Allpool on Dx ja Dy väärtused, nagu ühemõõtmelisel juhul, võrdsed 1-ga.

Kahemõõtmelise signaali diskreetimine toob kaasa ka selle spektri periodiseerimise ja vastupidi. Diskreetse signaali koordinaatide ja sageduste esituste informatsiooni ekvivalentsuse tingimus säilib ka võrdse arvu diskreetimispunktide korral põhisignaalivahemikes. Ristkülikukujulise diskreetimise korral määratakse Fourier' otse- ja pöördteisendused avaldiste abil:

S (k, l) = s (n, m) exp (-jn2pk / N-jm2pl / M), (17.2.1)

S (k, l) = exp (-jn2pk / N) s (n, m) exp (-jm2pl / M), (17,2,1")

s (n, m) = S (k, l) exp (-jn2pk / N-jm2pl / M). (17.2.2)

s (n, m) = exp (-jn2pk / N) S (k, l) exp (-jm2pl / M). (17,2,2 tolli)

Riis. 17.2.1. Spektri periodiseerimine.

Need avaldised näitavad, et ristkülikukujulise andmeproovivõtu rastri kahemõõtmelist DFT-d saab arvutada ühemõõtmeliste järjestikuste DFT-de abil. Teised avaldiste summad (17.2.1 ") ja (17.2.2") on funktsioonide s (n, m) ja S (k, l) lõikude ühemõõtmelised DFT-d piki sirgeid n ja k , ja esimene on arvutatud funktsioonide ühemõõtmelised DFT-d jaotistes m ja l. Teisisõnu, väärtuste s (n, m) ja S (k, l) algmaatriksid arvutatakse kõigepealt ümber vahemaatriksiteks DFT-ga ridade (või veergude kaupa) ja vahemaatriksiteks - DFT-ga lõplikeks maatriksiteks. veergude kaupa (või vastavalt ridade kaupa).

Et sagedusega Fx = 1 / Dx ja Fy = 1 / Dy analoogsignaali diskreetimisest põhjustatud spektri perioodiline kordumine (joonis 17.2.1) ei muuda spektrit põhisagedusalas. (algse analoogsignaali spektri suhtes) on vajalik ja piisab, et maksimaalsed sageduskomponendid fmax analoogsignaali spektris nii ridades kui veergudes ei ületa Nyquisti sagedust (fmax. x £ fN = Fx / 2, fmax. y £ fM = Fy / 2). See tähendab, et signaali diskreetimissagedus peab olema vähemalt kaks korda suurem kui signaali spektri maksimaalne sageduskomponent:

Fx ³ 2fmax. x, Fy ³ 2fmax. y, (17.2.3)

mis tagab, et spektraalfunktsioonid jõuavad põhispektrivahemiku otstes nullväärtusteni.

Kahemõõtmelise signaali rekonstrueerimise interpolatsiooniseeria. Kui pidev signaal sa (x, y) on spektripiiranguga signaal ja diskreetimisperioodid on valitud piisavalt väikesed ja külgnevate perioodide spektrid ei kattu:

Sa (Wx, Wy) = 0 | Wx | p / Dx, | Wy | p / Dx,

siis, nagu ühemõõtmelisel juhul, saab signaali sa (x, y) rekonstrueerida diskreetsest signaalist, kasutades Kotelnikovi-Shannoni seeria kahemõõtmelist analoogi:

sa (x, y) = Sn Sm s (n, m) . (17.2.4)

Kujutiste sagedusmoonutused ja nende kõrvaldamine. Samuti saab diskreedida piiramatu spektriga signaali, kuid sel juhul esineb külgnevates perioodides aliasing, samal ajal kui kõrged sagedused, mis on kõrgemad kui Nyquisti sagedused, "maskitakse", nagu ühemõõtmelisel juhul, madalate sageduste all. põhiperiood. Perioodi piiridest "peegelduse" mõju annab erinevates koordinaatides peegelduvate sageduste interferentsi tõttu veelgi keerulisema pildi. Sarnane efekt, mida nimetatakse varjunimeks, ilmneb ka siis, kui kujutised on aladisamplitud. See efekt on eriti selgelt märgatav teravate kontrastsete heleduse muutuste korral.

Selliste nähtuste vastu võitlemiseks kasutatakse eelfiltreerimist (antialiasing) – analoogkujutise eelkonvolutsiooni filtri kaalumisfunktsiooniga, mis lõikab ära kõrgsageduslikud komponendid, mis võivad põhjustada aliasingut. Kahemõõtmelisel juhul kirjeldatakse filtreerimist järgmiselt:

z (x, y) = h (x ", y") ③③ s (x-x", y-y"). (17.2.5)

Tuleb märkida, et analoogkujutised eksisteerivad ainult optilises vahemikus, näiteks valguse kuvamise kujul ekraanil, fotopaberil või fotofilmil, kuid ei saa eksisteerida arvuti mälus. Seetõttu on eelfiltreerimise füüsiline jõudlus võimalik ainult pildi registreerimisel selle defokuseerimise teel, mida reeglina ei rakendata. Esmane teave tuleks alati salvestada maksimaalse täielikkuse ja täpsusega ning esmase teabe puhastamine tarbetutest detailidest ja liiasusest on hilisema andmetöötluse küsimus. Seetõttu saab kahemõõtmeline eelfiltreerimine valemiga 17.2.5 seoses oma praktilises teostuses olla ainult põhisagedusvahemikus suure varuga (ülemäärase eraldusvõimega) võetud kujutiste filtreerimine ja seda kasutatakse reeglina, üledisamplimisel suuremaks astmeks, näiteks piltide tihendamisel. Eelfiltreerimise saab sisse ehitada ka pildistamisalgoritmidesse.

Joonisel fig. 3 ja allpool on tabelis 17.2.1 toodud näited kõige tavalisematest ühedimensioonilistest antialias-filtritest. Neid saab teostada analoogfiltrite kujul ja neid saab kasutada näiteks televisioonipiltide edastamisel analoogkujul raadiokanalite kaudu (horisontaalne antialiasing). Põhimõtteliselt saab sarnase toimingu teha ka veergudega (topeltpilt) ja pärast pildi summeerimist tehakse täielik antialiasing, kuid see meetod kuulub rohkem spetsiaalsete teadusuuringute valdkonda.

Tabel 17.2.1.

Põhilised kaalufunktsioonid

Aja aken

Kaalu funktsioon

Fourier' teisendus

Looduslik (P)

П (t) = 1, | t | £ t; П (t) = 0, | t |> t

P (w) = 2t sinc

Bartlett (D)

B (w) = t sinc2 (wt / 2).

Henninga, Ganna

p (t) = 0,5

0,5 P (w) + 0,25 P (w + p / t) + 0,25 P (w-p / t)

Hamming

p (t) = 0,54 + 0,46 cos (pt / t)

0,54 P (w) + 0,23 P (w + p / t) + 0,23 P (w-p / t)

Carre (2. aken)

p (t) = b (t) sinc (pt / t)

t · B (w) * П (w), П (w) = 1 | w |

Laplace-Gauss

p (t) = eksp [-b2 (t / t) 2/2]

[(t / b) exp (-t2w2 / (2b2))] ③ П (w)

Ühemõõtmeliste filtrite f1 (x) kahemõõtmelised analoogid on konstrueeritud kahes sümmeetriavariandis: või raadiuse funktsioonina:

f2 (x, y) = f1 (),

või tööna:

f2 (x, y) = f1 (x) × f1 (y).

Esimene võimalus on õigem, kuid teisel on eraldatavus, st kahemõõtmelist keerdumist saab teostada kahe ühemõõtmelise keerdumise abil järjestikku piki ridu f1 (x) ja piki veerge f1 (y).

Pildi uuesti proovivõtmine või resampling on digitaalsignaali diskreetimissageduse muutus. Digitaalsete piltide puhul tähendab see pildi suuruse muutmist.

Piltide uuesti proovivõtmiseks on erinevaid algoritme. Näiteks pildi suurendamiseks 2 korda bilineaarse interpolatsiooni meetodi abil saadakse vahepealsed veerud ja read külgnevate veergude ja ridade väärtuste lineaarse interpoleerimisega. Uue kujutise iga punkti saab saada algkujutise suurema arvu punktide kaalutud summana (bikuubiline ja muud tüüpi interpolatsioon). Kõrgeima kvaliteediga uuesti diskreetimine saavutatakse selliste algoritmide kasutamisel, mis võtavad arvesse mitte ainult signaali aega, vaid ka sagedusala.

Mõelge uuesti diskreetimisalgoritmile, mis säilitab maksimaalselt pildi sagedusteabe. Vaatleme algoritmi toimimist ühemõõtmelistel signaalidel, kuna kahemõõtmelist pilti saab kõigepealt venitada või kokku suruda horisontaalselt (ridade kaupa) ja seejärel vertikaalselt (veergude kaupa) ning kahemõõtmelise kujutise uuesti proovivõtmist. taandatakse ühemõõtmeliste signaalide redismpeerimiseks.

Oletame, et meil on ühemõõtmeline signaal (joonis 17.2.4), mis on määratud 0-T intervallile ja diskreetitud sammuga Dt = 1 (N intervalli). Signaali on vaja "venitada" m korda. Joonisel kujutatud signaali spekter arvutatakse kiire Fourier' teisendusega (FFT, spektri näidiste arv võrdub signaali näidiste arvuga) ja see on antud FFT põhivahemikus (0-2p, Nyquisti sagedus wN = p / Dt = p või 0,5N vastavalt spektriproovide numeratsioonile sammuga mööda spektrit Df = 1 / T või Dw = 2p / T). Venituse sooritamiseks on 2 sammu.

Esimene samm on nullidega interpoleerimine, mis suurendab signaali pikkust m korda. (joon. 17.2.5). Kõik algsignaali valimid tuleb korrutada m-ga ja seejärel sisestada iga signaali valimi järel m-1 nullväärtus. 0-T intervallil, mille väärtus jääb muutumatuks, asub nüüd m korda rohkem diskreetimisintervalle (mN) ja uus diskreetimisetapp on võrdne Dx = Dt / m. Sellest lähtuvalt on selle signaali uus Nyquisti sagedus mp / Dt = mp. Kuid spektri sammu füüsiline suurus sagedusühikutes on pöördvõrdeline signaali seadistusintervalli füüsilise väärtusega (Df = 1 / T) ja seetõttu arvutab signaali mN punktist tulenev FFT spektri mN punkti FFT põhivahemik 0-2pm algsignaali spektri sammuga, milles on algsignaali spektri m-perioodid (üks põhi- ja m-1 pool).

Teine samm on spektri külgribade väljafiltreerimine, kasutades madalpääsfiltrit kas aja- või spektraalpiirkonnas. Joonisel fig. 17.2.6 puhastati spekter ja viidi läbi Fourier pöördteisendus, mille tulemusena saadi kogu sagedusinfo täieliku säilimisega algsest m korda pikem signaal.

Sarnasel põhimõttel saab signaali tihendamise (detsimeerimise) algoritmi konstrueerida koefitsiendiga n, samal ajal kui sammude järjekord on vastupidine. Signaali kokkusurumisel suurendatakse signaali diskreetimisastet ja vastavalt vähendatakse Nyquisti sagedust, samal ajal kui kõrged sagedused (müra ja signaali spektri ebaolulised kõrgsageduslikud osad) peegelduvad põhivõrgu piirilt. vahemikku ja lisatakse põhiteabele, tekitades moonutusi. Selle nähtuse kõrvaldamiseks filtreeritakse signaal esmalt madalpäässagedusega, mis on võrdne uue Nyquisti sagedusega (antialiasing) ja alles seejärel detsimeeritakse signaal kümnendiga.

Ainult ajapiirkonnas uuesti valimimisel kombineeritakse venitus- ja tihendusalgoritmid reeglina üheks järjestikuseks protsessiks, täpsustades diskreetimisetapi muutuse suhte m / n kujul, mis võimaldab määrata täisarvu. m ja n väärtused koos proovivõtuetapi muutuse murdväärtustega. See lihtsustab oluliselt algoritme ning tõstab nende töö efektiivsust ja kvaliteeti. Näiteks kui signaali venitatakse 1,5 korda m / n = 3/2 juures, venitatakse signaali esmalt 3 korda (lihtne ja ühtlane nullide lisamine kõigile näidistele, seejärel tehakse madalpääsfiltreerimine, mille järel signaal on detsimeeritakse kaks korda. Antialiasing filter pole vajalik , kuna selle piirsagedus on kaetud esimese madalpääsfiltri sagedusega.Kui toimub pöördkompressioon (näiteks m / n = 2/3), samamoodi kasutatakse antialiasi filtrit.

17.3. piltide filtreerimine

Pildi filtreerimise all mõistetakse toimingut, mille tulemusel saadakse originaalpildist teatud reeglite järgi sama suur pilt. Tavaliselt määratakse tulemuseks oleva kujutise iga piksli intensiivsus (värvus) algkujutisel mõnes selle läheduses asuvate pikslite intensiivsuste (värvide) järgi.

Filtreerimisreeglid võivad olla väga erinevad. Pildi filtreerimine on arvutinägemise, mustrituvastuse ja pilditöötluse üks põhilisi toiminguid. Valdav enamiku pilditöötlusmeetodite töö algab lähtepiltide ühest või teisest filtreerimisest.

Joonfiltrid neil on väga lihtne matemaatiline kirjeldus. Eeldame, et esialgne halltoonides pilt A on antud, ja tähistame selle pikslite A (x, y) intensiivsust. Lineaarne filter on määratletud reaalväärtusega funktsiooni h (filtri tuum) abil, mis on määratletud rastril. Filtreerimine ise toimub diskreetse konvolutsiooni (kaalutud liitmise) toiminguga:

B (x, y) = h (i, j) ③③A (x, y) = h (i, j) A (x-i, y-j). (17.3.1)

Tulemuseks on pilt B. Tavaliselt on filtri tuum nullist erinev ainult mõnes punkti (0, 0) naabruses. Väljaspool seda naabruskonda on h (i, j) null või sellele väga lähedal ja selle võib tähelepanuta jätta. Summeerimine viiakse läbi (i, j) Î N ja iga piksli B (x, y) väärtuse määravad pildi A pikslid, mis asuvad aknas N, tsentreeritud punktis (x, y) ) (tähistus - hulk N (x, y) ). Filtri tuuma, mis on defineeritud ristkülikukujulises naabruses N, võib vaadelda m-by-n maatriksina, kus küljepikkused on paaritud arvud. Kerneli maatriksina määramisel peaks see olema keskel. Kui piksel (x, y) asub pildi servade läheduses, siis teatud (i, j) koordinaadid A (x-i, y-j) võivad vastata olematutele pikslitele A väljaspool pilti. Seda probleemi saab lahendada mitmel viisil.

Ärge filtreerige neid piksleid, kärpides pilti B servadest või rakendades nende väärtustele pildi A algväärtusi.

Ärge kaasake puuduvat pikslit liitmisse, jaotades selle massi h (i, j) ühtlaselt teiste pikslite vahel naabruses N (x, y).

Määrake ekstrapolatsiooni abil uuesti pildi piiridest väljapoole jäävad piksliväärtused.

Peegelpildi jätkamise abil saate uuesti määratleda piksliväärtused väljaspool pildi piire.

Meetodi valik tehakse konkreetseid filtri- ja pildiomadusi arvestades.

Siluvad filtrid. Lihtsaim ristkülikukujuline silumisfilter raadiusega r määratakse maatriksi abil suurusega (2r + 1) × (2r + 1), mille kõik väärtused on võrdsed 1 / (2r + 1) 2, ja väärtus on võrdne ühega. See on madala sagedusega ühemõõtmelise liikuva keskmise U-kujulise filtri kahemõõtmeline analoog. Sellise tuumaga filtreerides asendatakse piksliväärtus pikslite keskmise väärtusega ruudus, mille ümber on külg 2r + 1. 3 × 3 filtrimaski näide:

.

Üks filtrite rakendusi on müra vähendamine. Müra muutub pikslist pikslisse sõltumatult ja eeldusel, et müra väärtuse matemaatiline ootus on võrdne nulliga, kompenseerivad summeerimise ajal naaberpikslite müra üksteist. Mida suurem on filtreerimisaken, seda väiksem on müra keskmine intensiivsus, kuid see toob kaasa ka oluliste pildidetailide vastava hägustumise. Valge punkti kujutis mustal taustal filtreerimise ajal (reaktsioon ühele impulsile) on ühtlaselt hall ruut.

Müra vähendamisel ristkülikukujulise filtri abil on märkimisväärne puudus: kõik filtrimaski pikslid mis tahes kaugusel töödeldud pikslitest avaldavad tulemusele sama mõju. Veidi parem tulemus saadakse filtri muutmisel keskpunkti massi suurendamisega:

.

Tõhusamalt saab müra vähendada, kui pikslite mõju tulemusele väheneb kauguse suurenedes töödeldavast pikslitest. Seda omadust omab tuumaga Gaussi filter: h (i, j) = (1 / 2ps2) exp (- (i2 + j2) / 2s2). Gaussi filtril on lõpmatu suurusega nullist erinev tuum. Kuid filtri tuuma väärtus väheneb väga kiiresti n-ni) ja seetõttu võib praktikas piirduda konvolutsiooniga väikese aknaga ümber (0, 0), võttes näiteks akna raadiuse 3σ.

Gaussi filtreerimine on ka antialiasing. Kuid erinevalt ristkülikukujulisest filtrist on Gaussi filtriga punkti kujutis sümmeetriline hägune koht, mille heledus väheneb keskelt servadeni. Piltide hägususe aste määratakse parameetriga σ.

Kontrastsed tõusvad filtrid ... Kui antialiasing-filtrid vähendavad kujutise kohalikku kontrasti, muutes selle häguseks, siis kontrasti suurendavad filtrid tekitavad vastupidise efekti ja on sisuliselt kõrge ruumisagedusega filtrid. Kontrastsust suurendava filtri südamiku väärtus punktis (0, 0) on suurem kui 1, väärtuste kogusumma on 1. Näiteks kontrasti suurendavad filtrid on filtrid, mille tuum on määratud maatriksitega:

. .

Filtri rakendamise näide on näidatud joonisel fig. 17.3.1. Kontrastsuse suurendamise efekt saavutatakse sellega, et filter rõhutab külgnevate pikslite intensiivsuse erinevust, eemaldades need intensiivsused üksteisest. See efekt on seda tugevam, seda suurem on tuuma keskliikme väärtus. Lineaarse kontrasti suurendava filtreerimise iseloomulik artefakt on märgatav hele ja vähem märgatavad tumedad halod ääriste ümber.

Erinevuste filtrid Kas lineaarsed filtrid on määratletud diferentsiaaloperaatorite diskreetsete lähendustega (lõplike erinevuste meetodil). Need filtrid mängivad olulist rolli paljudes rakendustes, näiteks pildilt piiride leidmisel.

Lihtsaim diferentsiaaloperaator võtab tuletise x-koordinaadi d / dx suhtes, mis on defineeritud pidevate funktsioonide jaoks. Diskreetsete kujutiste sarnaste operaatorite tavalised variandid on filtrid Prewitt ja Sobel:

. .

Filtrid, mis lähendavad tuletise operaatorit y-koordinaadi d / dy suhtes, saadakse maatriksite transponeerimisel.

Lihtsaim algoritm gradiendi normi arvutamiseks kolmest külgnevast punktist:

G (x, y) = .

Kasutatakse ka lihtsustatud arvutusvalemit:

Gradiendi normi arvutamine neljast külgnevast punktist (Robertsi operaator):

Sobeli algoritm kasutab kaheksa heleduse näitu keskpunkti läheduses:

G (x, y) = , G (x, y) @ ,

Gxx, y = -,

Gyx, y = -.

Lisaks gradiendi normi täpsemale määramisele võimaldab Sobeli algoritm määrata ka gradiendi vektori suuna pildianalüüsi tasapinnal gradiendi vektori ja maatriksi ridade suuna vahelise nurga j kujul:

j (x, y) = argtg (Gyx, y / Gxx, y).

Erinevalt antialiasing- ja kontrasti suurendavatest filtritest, mis ei muuda pildi keskmist intensiivsust, saadakse erinevuste operaatorite kasutamise tulemusena reeglina pilt nullilähedase keskmise piksliväärtusega. Algkujutise vertikaalsed servad (piirid) vastavad saadud kujutise suurte absoluutväärtustega pikslitele. Seetõttu nimetatakse deltafiltreid ka piirivaliku filtriteks.

Sarnaselt ülaltoodud filtritele saate lõplike erinevuste meetodit kasutades koostada filtreid teistele diferentsiaaloperaatoritele. Eelkõige saab paljude rakenduste jaoks olulist Laplace'i diferentsiaaloperaatorit (Laplacian) D = 𝝏2 / 𝝏x2 + 𝝏2 / 𝝏y2 diskreetsete piltide jaoks lähendada maatriksiga filtri abil (üks valikutest):

.

Nagu näha joonisel fig. 17.3.2, diskreetse Laplaciani rakendamise tulemusena vastavad suured absoluutväärtused nii vertikaalsetele kui ka horisontaalsetele heleduse erinevustele. Filter on seega filter, mis leiab igasuguse orientatsiooni piirid. Pildilt piiride leidmiseks saab seda filtrit rakendada ja võtta kõik pikslid, mille suurus ületab teatud läve.

Sellel algoritmil on aga olulisi puudusi. Peamine neist on ebakindlus läviväärtuse valikul. Pildi erinevate osade puhul saadakse vastuvõetav tulemus tavaliselt oluliselt erinevate läviväärtuste juures. Lisaks on erinevusfiltrid pildimüra suhtes väga tundlikud.

Kahemõõtmeline tsükliline konvolutsioon. Mis puutub ühemõõtmelistesse signaalidesse, siis kahemõõtmelist konvolutsiooni saab teostada ruumiliste sageduste valdkonnas, kasutades kiireid Fourier' teisendusalgoritme ning korrutades kujutise ja filtrituuma kahemõõtmelised spektrid. See on ka tsükliline ja seda tehakse tavaliselt libistades. Võttes arvesse tsüklilisust, siis tuuma spektri konstantse mustri arvutamiseks kahekordistatakse tuuma filtrimaski mõõtmed piki telge ja polsterdatakse nullidega ning samade maski suurustega valitakse üle pildi libisev aken. mida FFT tehakse. FIR-filtri rakendamine FFT-ga on eriti tõhus, kui filtril on suur võrdlusala.

Mittelineaarsed filtrid ... Digitaalses pilditöötluses kasutatakse laialdaselt auaste statistikal põhinevaid mittelineaarseid algoritme erinevate müramudelite poolt kahjustatud piltide taastamiseks. Need võimaldavad vältida täiendavaid pildimoonutusi müra eemaldamisel, samuti parandavad oluliselt kõrge müratasemega piltide filtreerimise tulemusi.

Tutvustame pildielemendi A (x, y) M-naabruse kontseptsiooni, mis on selle naabruse jaoks keskne. Lihtsamal juhul sisaldab M-naabrus N-pikslit - filtrimaski langevaid punkte, sealhulgas (või mitte kaasa arvatud) keskmist. Nende N-elementide väärtused saab järjestada variatsiooniseeriasse V (r), järjestada kasvavas (või kahanevas) järjekorras ja arvutada selle seeria teatud hetked, näiteks heleduse mN keskmine väärtus. ja dispersioon dN. Keskmist näidist asendava filtri väljundväärtuse arvutamine toimub järgmise valemi abil:

B (x, y) = aА (x, y) + (1-a) mN. (17.3.2)

Koefitsiendi a = väärtus on seotud teatud seosega filtriaknas olevate loenduste statistikaga, näiteks:

a = dN / (dN + k dS), (17.3.3)

kus dS on müra dispersioon pildil tervikuna või S-naabruses S> M ja MÎS korral, k on S-naabruse dispersiooni usalduskonstant. Sellest valemist nähtub, et k = 1 ja dN korral toimub "dS, a" 0,5 ja väärtus B (x, y) = (A (x, y) + mN) / 2, st liidetakse võrdselt keskse võrdlusaluse väärtustest ja selle M-naabruskonna pikslite keskmisest väärtusest. dN väärtuste suurenemisega suureneb panus keskse kontrollväärtuse tulemusesse, vähenedes mN väärtus. Keskmiste väärtuste osakaalu M-naabruses saab muuta koefitsiendi k väärtusega.

Statistilise funktsiooni valik ja koefitsiendi a sõltuvuse olemus sellest võib olla üsna mitmekesine (näiteks vastavalt M-naabruskonna valimite erinevuste dispersioonidele keskvalimiga) ja sõltub nii filtri ava suuruse ning piltide ja müra olemuse kohta. Sisuliselt peaks koefitsiendi a väärtus määrama keskse võrdlusaluse kahjustuse määra ja vastavalt sellele M-naabruskonnast proovide laenamise funktsiooni selle parandamiseks.

Kõige lihtsamad ja levinumad pilditöötluse mittelineaarsete filtrite tüübid on lävi- ja mediaanfiltrid.

Läve filtreerimine on seatud näiteks järgmiselt:

B (x, y) =

Suurusjärk lk on filtreerimise lävi. Kui filtri keskpunkti väärtus ületab selle M-naabruses olevate proovide keskmist väärtust mN läve väärtuse võrra, siis asendatakse see keskmise väärtusega. Läviväärtus võib olla kas konstantne või funktsionaalselt sõltuv keskpunkti väärtusest.

Keskmine filtreerimine on määratletud järgmiselt:

B (x, y) = keskmine (M (x, y)),

ehk filtreerimise tulemuseks on naabruskonna pikslite mediaanväärtus, mille kuju määrab filtrimask. Keskmine filtreerimine võib tõhusalt eemaldada pildilt müra, mis mõjutab üksikuid piksleid iseseisvalt. Näiteks on sellised mürad digifotograafias "katkised" pikslid, "lume" müra, kui osa piksleid asendatakse maksimaalse intensiivsusega pikslitega jne. Mediaanfiltrimise eeliseks on see, et "kuum" piksel on tumedal taustal. asendatakse tumedaks, mitte ei "määrdu" ümbruses.

Mediaanfiltreerimisel on väljendunud selektiivsus massiivi elementide suhtes, mis on filtri avas oleva numbrijada mittemonotoonsed komponendid. Samal ajal jätab mediaanfilter jada monotoonse komponendi muutmata. Tänu sellele funktsioonile säilitavad optimaalselt valitud avaga mediaanfiltrid objektide teravad servad ilma moonutusteta, summutades korrelatsioonita või nõrgalt korrelatsiooniga müra ja väikese suurusega detaile.

Ekstreemsed filtrid määratakse reeglitega:

Bmin (x, y) = min (M (x, y)),

Bmax (x, y) = max (M (x, y)),

see tähendab, et filtri tulemus on filtrimaski pikslite minimaalne ja maksimaalne väärtus. Selliseid filtreid kasutatakse reeglina binaarpiltide jaoks.

17.4. PILDI KOMPRESSIOON

Tüüpiline pilt eraldusvõimega suurusjärgus 3000 × 2000 ja 24 bitti piksli kohta värvi jaoks on 17 megabaiti. Professionaalsete seadmete puhul võib saadava pildirastri suurus olla palju suurem, värvisügavus kuni 48 bitti piksli kohta ning ühe pildi suurus võib olla üle 200 megabaidi. Seetõttu on kujutise tihendamise algoritmid pilti esindavate andmete hulga vähendamiseks väga olulised.

Algoritme on kaks peamist klassi:

1. Kadudeta tihendus, kui on olemas pöördalgoritm A-1, nii et iga h-kujutise A [h] = h1 korral on meil A-1 = h. Kadudeta pakkimist kasutatakse sellistes graafilistes pildivormingutes nagu: GIF, PCX, PNG, TGA, TIFF ning seda kasutatakse eriti väärtusliku esmase teabe (meditsiinilised pildid, õhu- ja kosmosepildid jne) töötlemisel, kui isegi väikseimgi moonutus esineb. ebasoovitav

2. Kadudega pakkimine (kadudega tihendus), kui see ei anna võimalust originaalkujutist täpselt taastada. A-ga seotud ligikaudse kujutise taastamise algoritmi tähistatakse kui A *. Paar (A, A *) on valitud kõrge tihendusastme tagamiseks, säilitades samal ajal visuaalse kvaliteedi. Kadudega tihendamist kasutatakse pildivormingutes: JPEG, JPEG2000 jne.

Kõik algoritmid ja väited viitavad nii piltidele kui ka suvalistele jadadele, mille elemendid võivad võtta lõpliku arvu väärtusi. Tuleb meeles pidada, et pole olemas ideaalseid algoritme, mis tihendaksid mis tahes andmekogumit ilma kadudeta.

Korduspikkuse (RLE) kodeerimisalgoritmid põhinevad lihtsal põhimõttel: algse jada elementide korduvate rühmade asendamine paariga (kogus, element) või ainult kogusega.

Bititase. Käsitleme algandmeid bittide jada tasemel, näiteks mustvalget kujutist esindades. Tavaliselt on reas mitu 0-d või 1-d ja saate kodeerida järjestikuste identsete numbrite arvu. Kuid korduste arv peab olema ka bittides kodeeritud. Võime eeldada, et iga korduste arv varieerub vahemikus 0 kuni 7 (3-bitine kood), vaheldudes ühtede ja nullide koodide jada. Näiteks saab jada võrrelda numbritega 7 0 4, see tähendab 7 ühte, 0 nulli, 4 ühte, samal ajal kui meil on uus aasta - Mida pikem on identsete bittide jada, seda suurem on efekt. Niisiis kodeeritakse 21 ühest, 21 nullist, 3 ühest ja 7 nullist koosnev jada järgmiselt: see tähendab, et algsest jadast pikkusega 51 bitti on meil jada pikkusega 36 bitti.

Baitide tase. Oletame, et sisendisse suunatakse halltoonides pilt, kus pikslite intensiivsuse väärtusele eraldatakse 1 bait, samas kui identsete bittide pika jada ootus väheneb oluliselt.

Jagame sisendvoo baitideks (kood vahemikus 0 kuni 255) ja kodeerime korduvad baidid paarikaupa (number, täht). Üksiku baidi saab jätta muutmata. Seega on baidid AABBBCDAA kodeeritud (2A) (3B) (C) (D) (2A).

Selle algoritmi modifikatsioone kasutatakse aga harva (näiteks PCX-vormingus), kuna jadade alamklass, millel algoritm töötab, on suhteliselt kitsas. Kõige sagedamini kasutatakse neid survetorustiku ühe etapina.

Sõnastiku algoritmid selle asemel, et kodeerida ainult ühte sisendjada elementi, kodeeritakse elementide ahel. Sel juhul kasutatakse uute kodeerimiseks stringide sõnastikku (mis on loodud sisendjada põhjal).

Algoritm LZ77 oli üks esimesi, kes sõnastikku kasutas. Jada viimast N juba kodeeritud elementi kasutatakse sõnaraamatuna. Tihendusprotsessi ajal "libiseb" alamjada sõnastik sissetuleva jada kohal. Väljundis olev elementide ahel on kodeeritud järgmiselt: töödeldud elementide ahela sobiva osa asukoht sõnastikus - nihe (praeguse asukoha suhtes), pikkus, esimene element, mis järgneb sobitatud ahela osale. Tikuketi pikkus on ülalt piiratud arvuga n. Vastavalt sellele on ülesandeks leida sõnastikust suurim string, mis vastab töödeldavale jadale. Kui vasteid pole, siis salvestatakse nulli nihe, üks pikkus ja kodeerimata jada esimene element.

Ülalkirjeldatud kodeerimisskeem viib libiseva akna kontseptsioonini, mis koosneb kahest osast:

Juba kodeeritud elementide alamjada pikkusega N-sõnastik - otsingupuhver;

Elementide ahela pikkuse n alamjada, millele proovitakse vastet leida, on ettevaatepuhver.

Tihendatud jada dekodeerimine on salvestatud koodide dekrüpteerimine: iga kirje sobitatakse sõnastikust pärineva stringiga ja selgesõnaliselt kirjutatud elemendiga, mille järel sõnastikku nihutatakse. Sõnastik luuakse uuesti, kui dekodeerimisalgoritm töötab.

See algoritm on terve algoritmide perekonna esivanem. Selle eelised hõlmavad korralikku tihendussuhet üsna suurtel jadadel ja kiiret dekompressiooni. Puudusteks on aeglane tihenduskiirus ja madalam tihendusaste kui alternatiivsetel algoritmidel.

LZW algoritm. Selle algoritmi sõnastik on tabel, mis täidetakse algoritmi käitamise ajal elementide stringidega. Tihendusprotsess otsib pikima ahela, mis on juba sõnastikku kirjutatud. Iga kord, kui sõnastikust uut elementide stringi ei leita, lisatakse see sõnastikku ja kirjutatakse stringi kood. Teoreetiliselt pole tabeli suurusel piiranguid, kuid suuruse piirang võimaldab teil tihendusastet parandada, kuna kogunevad mittevajalikud (ei leitud) ahelad. Mida rohkem on tabelis kirjeid, seda rohkem tuleb koodide salvestamiseks eraldada teavet.

Dekodeerimine seisneb koodide otseses dekrüpteerimises, st sõnastiku koostamises ja vastavate stringide väljastamises. Sõnastiku lähtestamine toimub samamoodi nagu kodeerijas. Algoritmi eeliste hulka kuuluvad kõrge tihendusaste ja nii tihendamise kui ka dekodeerimise üsna suur kiirus.

Entroopia kodeerimise algoritmid pane igale jada elemendile vastavusse kood, nii et selle pikkus vastaks elemendi esinemise tõenäosusele. Tihendamine toimub, asendades algse jada sama pikkusega elemendid (iga element võtab sama arvu bitte) erineva pikkusega elementidega, mis on võrdelised tõenäosuse negatiivse logaritmiga, st elementidel, mis on ülejäänutest levinumad, on lühem koodi pikkus.

Huffmani algoritm kasutab muutuva pikkusega eesliite koodi, millel on eriline omadus: lühemad koodid ei ühti pikemate eesliitega (algosaga). See kood võimaldab üks-ühele kodeerimist. Tihendusprotsess seisneb sisendjada iga elemendi asendamises selle koodiga. Koodide komplekti konstrueerimine toimub tavaliselt nn koodipuud.

Huffmani algoritm on kahekäiguline. Esimesel pildil liikumisel luuakse elementide kaalude tabel ja teise käigus toimub kodeerimine. On olemas fikseeritud tabeli algoritmi teostused. Sageli juhtub, et tähestiku elementide eelnev tõenäosusjaotus on teadmata, kuna kogu jada pole korraga saadaval ja kasutatakse Huffmani algoritmi adaptiivseid modifikatsioone.

Kadunud pildi tihendamine. Piltide salvestamiseks vajalik infohulk on tavaliselt suur. Klassikalised algoritmid, olles üldotstarbelised algoritmid, ei võta arvesse, et tihendatav teave on kujutis – kahemõõtmeline objekt, ega taga piisavat tihendusastet.

Kadudega kokkusurumine põhineb inimese pilditaju omadustel: kõrgeim tundlikkus teatud värvi lainepikkuste vahemikus, võime tajuda pilti tervikuna, märkamata väikseid moonutusi. Peamine piltide klass, millele kadudega pakkimisalgoritmid on keskendunud, on fotod, sujuvate värviüleminekutega pildid.

Kujutise kadumise hinnang. Piltide kadumise hindamiseks pärast tihendatud piltidest taastamist (dekodeerimist) on palju meetmeid, kuid nende kõigi jaoks saab valida kaks pilti nii, et nende erinevus on piisavalt suur, kuid erinevused on pildile peaaegu märkamatud. silma. Ja vastupidi – saate valida pilte, mis on silma järgi väga erinevad, kuid millel on väike erinevus.

Kao standardne numbriline mõõt on tavaliselt rekonstrueeritud kujutise piksliväärtuste standardhälve (RMS) algsest. Kaohinnangu kõige olulisem “mõõt” on aga vaatleja arvamus. Mida vähem erinevusi (või parem, nende puudumist) vaatleja tuvastab, seda kõrgem on tihendusalgoritmi kvaliteet. Kadunud pakkimisalgoritmid annavad kasutajale sageli võimaluse valida "kaotatud" andmete hulka ehk siis õiguse valida tihendatud pildi kvaliteedi ja suuruse vahel. Loomulikult, mida parem on visuaalne kvaliteet kõrgema tihendusastmega, seda parem on algoritm.

Fourier' teisendus. Üldiselt võib pilti käsitleda kahe muutuja funktsioonina, mis on määratletud lõpliku rastri punktides. Selliste funktsioonide kogum fikseeritud lõpliku rastri punktides moodustab lõpliku mõõtmega eukleidilise ruumi ja neile saab rakendada diskreetset Fourier' teisendust, st kujutise spektraalset esitust. See pakub:

Spektri koefitsientide mittekorrelatsioon ja sõltumatus, st ühe koefitsiendi esituse täpsus ei sõltu ühestki teisest.

- Energia tihendamine. Teisendus hoiab põhiteavet väikeses arvus koefitsientides. See omadus on kõige ilmekam fotorealistlikel piltidel.

Spektri esituskoefitsiendid on kujutise ruumiliste sageduste amplituudid. Sujuvate üleminekutega piltide puhul sisaldub suurem osa informatsioonist madalsagedusspektris.

JPEG-vormingus kasutatav tihendusalgoritm põhineb diskreetse koosinus-Fourieri teisenduse kasutamisel. Algoritmis olev tihendusskeem on konveier, kus see teisendus on ainult üks etappidest, kuid üks peamistest. Algoritm sisaldab järgmisi põhitoiminguid:

1. Tõlge YCbCr värviruumi. Siin on Y heleduse komponent, Cb ja Cr on kromaatilisuse komponendid. Inimese silm on heleduse kui värvi suhtes tundlikum. Seetõttu on Y-ülekande puhul olulisem säilitada suurem täpsus kui Cb- ja Cr-ülekandes.

2. Diskreetne koosinusteisendus (DCT). Pilt on jagatud plokkideks 8 × 8. Igale plokile rakendatakse diskreetne koosinusteisendus (Y, Cb ja Cr komponentide jaoks eraldi).

3. Kõrgsageduslike komponentide vähendamine DCT maatriksites. Inimsilm praktiliselt ei märka kõrgsageduskomponentide muutusi, seetõttu saab kõrgete sageduste eest vastutavaid koefitsiente salvestada väiksema täpsusega.

4. Maatriksite siksakiline järjestamine. See on spetsiaalne maatrikspääs ühemõõtmelise jada saamiseks. Kõigepealt tuleb element T00, seejärel T01, T10, T1 Pealegi on tüüpiliste fotorealistlike piltide puhul esmalt madala sagedusega komponentidele vastavad nullist erinevad koefitsiendid ja seejärel palju nulle (kõrgsageduslikud komponendid).

5. Tihendamine esmalt RLE meetodil ja seejärel Huffmani meetodil.

Pildi taastamise algoritm töötab vastupidises järjekorras. Kompressiooniaste 5 kuni 100 või enam korda. Samal ajal jääb enamiku fotorealistlike piltide visuaalne kvaliteet kuni 15-kordselt kokkusurutuna heal tasemel. Algoritm ja vorming on kõige tavalisemad täisvärviliste piltide edastamiseks ja salvestamiseks.

Lainete teisendus signaalid on klassikalise Fourier' teisenduse üldistus. Mõiste "laine" tähendab inglise keelest tõlkes "väikest (lühikest) lainet". Wavelets on üldistatud nimetus teatud kujuga matemaatiliste funktsioonide perekondadele, mis on ajas ja sageduses lokaalsed ja milles kõik funktsioonid saadakse ühest põhifunktsioonist selle nihkete ja venituste abil piki ajatelge.

Kadudeta tihendusalgoritmides säilitatakse reeglina kõik tihenduskonveieri toimingud, asendades diskreetse Fourier' teisenduse diskreetse laineti teisendusega. Laineteisendustel on väga hea sagedus-ruumiline lokaliseerimine ja need on selles indikaatoris paremad kui traditsioonilised Fourier' teisendused. See võimaldab rakendada tugevamat kvantiseerimist, parandades järjestuse omadusi järgnevaks tihendamiseks. Sellel teisendusel põhinevad kujutise tihendamise algoritmid näitavad sama tihendusastmega paremaid tulemusi pildikvaliteedi säilitamisel.

kirjandust

46. ​​jt Kiired algoritmid digitaalsel pilditöötlusel. - M .: Raadio ja side, 1984 .-- 224 lk.

47. Soifer pilditöötlus. 2. osa. Meetodid ja algoritmid. - Sorose haridusajakiri nr 3, 1996.

48., Auaste statistikat kasutavatel mittelineaarsetel algoritmidel põhinevate piltide kõhre müra. - Jaroslavli Riiklik Ülikool, 2007.

49. Andrejevi televisiooni valvesüsteemid. II osa. Aritmeetika – loogilised alused ja algoritmid. Õpetus. - SPb: SPb, GUITMO, 2005 .-- 88lk.

51. Sissejuhatus digitaalsesse signaalitöötlusse (matemaatika alused) .- M .: Moskva Riiklik Ülikool, Arvutigraafika ja multimeedia labor, 2002. - http: // pv. ***** / dsp / dspcourse. pdf, http://dsp-book. ***** / dspcourse. djvu, http:// geogin. ***** / arhiv / dsp / dsp4.pdf.

1i. ja muud rastergraafika algoritmilised alused. - Interneti-Infotehnoloogiaülikool. - http:// www. ***** / goto / kursus / rastrgraaf /

2i. Lukin - elektroonilised süsteemid: Loengukonspekt. ITMO, 2004. - Peterburi, ITMO IFF, 2004. - http: // iff. ***** / kons / oes / KL. htm

Teave märgatud vigade ja täiendusettepanekute kohta: ***** @ *** ru.

Autoriõigus© 2008DavidovA.V.

Laboritöö nr 1

Pilditöötluse algoritmid

Konvolutsioonioperatsioon

Konvolutsioon on väga laialt levinud algoritm, mida saab kasutada nii pildi eeltöötluseks kui ka objektide tuvastamiseks ja tuvastamiseks. Olgu pilt täpsustatud kahemõõtmelise heledusmaatriksiga F" ja maatriksi impulssreaktsioon H... Maatriksi matemaatiline konvolutsioon F südamikuga H saab määrata järgmise valemiga:

kus M2xN2 - konvolutsioonituuma maatriksi suurus. Maatriksi suurus F võrdub (M1 + M2-1) x (N1 + N2-1), kus M1xN1 - algse maatriksi suurus F" ... Maatriks F saadakse algsest, lisades maatriksi servadesse mingi reegli järgi elemente, et viia see vajaliku suuruseni. Tavaliselt on originaalmaatriksi servad polsterdatud nullidega poole maatriksi laiuse ulatuses H vasakule ja paremale ning vastavalt pool kõrgust üles ja sama allapoole. Seejärel saadud maatriksi suurus R on sama, mis maatriks F" .

Konvolutsiooni saab arvutada otse ühe maatriksi "käivitamisega" üle teise, nagu juba eespool näidatud. Joonisel fig. 1 näitab konvolutsiooni arvutamise skeemi (maskimaatriksi suurus on 3x3). Konvolutsioonioperaatorit saab vaadelda koefitsientide (maskide) maatriksina, mis korrutatakse elemendipõhiselt valitud pildifragmendiga ja seejärel summeeritakse, et saada filtreeritud kujutise elemendi uus väärtus. See maatriks võib olla mis tahes suurusega, mitte tingimata ruudukujuline.

Riis. 1. Konvolutsioonioperatsiooni rakendamine.

Harjutus

    Rakendada algoritm, mis teostab maatriks-maskiga algkujutise konvolutsiooni operatsiooni.

    Maatriksmaski suuruse ja tüübi määrab kasutaja.

    Erinevate pilditöötlusalgoritmide rakendamiseks kasutage järgmisi maskimaatrikse:

    • pildi müra tasandamiseks ja summutamiseks kasutage järgmise kujuga 3x3 maatriksmaski:

    piirjoonte rõhutamiseks kasutatakse järgmist tüüpi maatriksmaske:

1/9*

    piirjoonte valimiseks kasutatakse järgmist tüüpi maski:

4. Rakendage mediaanfilter, mida kasutatakse punkt- ja impulssmüra summutamiseks. Pildi piksel ja selle naabrid vaadeldaval alal rivistatakse variatsiooniseerias (kasvavates või kahanevates piksliväärtustes) ja selle variatsiooniseeria keskne väärtus valitakse uueks piksliväärtuseks. Keskmistatud filtreerimise tulemuseks on see, et pildil sisalduv juhuslik müra eemaldatakse tõhusalt. Seda seetõttu, et kõik pikslite intensiivsuse juhuslikud järsud muutused huvipakkuvas piirkonnas sorteeritakse, st. see paigutatakse selle ala sorteeritud väärtuste üla- või alaossa ja seda ei arvestata, kuna elementide uue väärtuse jaoks võetakse alati keskväärtus.

5. Rakendage reljeeftrükkimise algoritmi. Reljeeftrükk toimub samamoodi nagu kontuuride keskmistamise või allajoonimise algoritmide puhul. Iga pildi pikslit töödeldakse 3x3 reljeefmaatriksiga. Näiteks võib reljeefse tuumana võtta järgmist maatriksmaski:

Pärast piksliväärtuse töötlemist reljeeftuuma poolt lisatakse sellele 128. See muudab taustapiksli väärtuse keskmiseks halliks (punane = 128, roheline = 128, sinine = 128). 255-st suuremad summad saab ümardada 255-ni.

Kujutise reljeefses versioonis näivad piirjooned olevat pinna kohal välja pressitud. Pildi valgustuse suunda saab muuta kerneli positsioonide 1 ja -1 muutmisega. Kui näiteks väärtusi 1 ja -1 vahetada, siis valgustuse suund on vastupidine.

6. Pildi veevärvimine. Akvarellifilter muudab pildi ja pärast töötlemist näeb see välja, nagu oleks see akvarelliga maalitud:

    Akvarellfiltri rakendamise esimene samm on pildi värvide silumine. Üks antialiasimise meetodeid on värvide keskmistamise rakendamine igas punktis. Iga piksli ja selle 24 naabri (maatriks-maski suurus on 5x5) värviväärtused on järjestatud kahanevas või kasvavas järjekorras. Keskmine (kolmeteistkümnes) värviväärtus variatsiooniseerias on määratud keskmisele pikslile.

    pärast värvide silumist tuleb värviüleminekute piiride esiletõstmiseks rakendada allajoonitud filtrit.

Kujutiste kujutamine

Piltide esitusi on kahte peamist tüüpi – vektor- ja raster.

Vektoresituses kirjeldatakse pilti joonte (vektorite) komplektiga, mis sisaldavad algus- ja lõpp-punkti koordinaate, joonte kumerust ja muid geomeetrilisi karakteristikuid, kirjeldatakse ka erinevate alade ja värviomaduste konstrueerimise reegleid. Teisisõnu, rasteresituse jaoks on vaja moodustada teatud matemaatiline mudel. Seetõttu kasutatakse vektoresitlust peamiselt kujutise sünteesi probleemide lahendamiseks. Kuigi mõned pildituvastusalgoritmid nõuavad nende tööks täpselt vektorkujutust, mis tuleb hankida algkujutiselt.

Rasterkujutis on üks või mitu maatriksit, mis kirjeldavad kujutise karakteristikute ruumilist jaotust teatud Descartes'i koordinaatide võrgustikul. Sel juhul on pilt üles ehitatud paljudest punktidest ja sellel on rasterstruktuur. Rasterkujutise esituse põhielemendiks on piksel (lühend väljendist "pildielemendid" – pildielemendid), millel on koordinaadid rasterkoordinaadisüsteemis ja mõned atribuudid (värvus, heledus, läbipaistvus jne). Pikslite arv X- ja Y-koordinaatides (horisontaalne ja vertikaalne) määrab pildi esituse eraldusvõime (mõõtme). Pikslite värvi määrab sügavus – mis tahes värvi määramiseks vajalik bittide arv.

Sõltuvalt piksli värvi määramise meetoditest ja algse pildi omadustest jagunevad rasterpildid järgmisteks osadeks:

Binaarne

Pooltoonid

Palett

Täis värv

Binaarses esituses võib piksli värv olla kas valge või must ning see on kodeeritud ühe bitiga. Pilt on maatriks. Selle maatriksi iga elemendi I (i, j) väärtus on kas 0 või 1, kus i on rea number ja antud pikslile vastava elemendi veeru number j (joonis 1).

Halltoonides piltidel tähistavad pikslid halltoonide heleduse väärtusi. Halltoonides pilti kirjeldavad maatriksiindeksid määravad piksli asukoha rastril ja maatriksi elemendi väärtuse

- määrab selle heleduse I (i, j) (joonis 2).

Paletipilte kirjeldatakse kahe maatriksiga (joonis 3). Üks salvestab indeksite väärtused, mis määravad viite paletimaatriksi reale. Paletimaatriks on värvikaart. See sisaldab 3 veergude rühma, mis vastavad punasele "R", rohelisele "G" ja sinisele "B" värvile. Samuti määravad nad vastava piksli värvi.

Palett on Nc 3 maatriks, kus Nc on värvide arv.

Pildi eeltöötluse algoritmid

Täisvärvilised pildid on ehitatud RGB-vormingus ja esindavad kolme maatriksit R (i, j), G (i, j), B (i, j). Iga maatriksi vastavad elemendid sisaldavad maatriksiindeksitega määratud piksli punase, rohelise ja sinise värvi intensiivsuse väärtusi. Seega ei ole täisvärvilisel pildil värvikaarti ja iga piksli värv on esindatud kolme numbriga, mis on võetud vastavatest maatriksitest (joonis 4).

Maatriksites olevate arvude vorming võib olla kas täisarv või ujukoma. Esimene juhtum viitab nn digiteeritud piltidele, mis on saadud erinevate seadmete - skannerite, digikaamerate, telekaamerate jne abil. Just selles vormingus salvestatakse piltide teave tavalistes graafikafailides.

Teist võimalust kasutatakse piltide sisemiseks esituseks nende töötlemise ajal. Sel juhul on mugav intensiivsuse andmed normaliseerida ühte vahemikku, näiteks vahemikku ja teha erinevaid arvutusi ujuvate arvudega ning seejärel teisendada tulemus algsele täisarvu kujule. See meetod võimaldab teil vähendada arvutusvigu ja parandada töötlustulemuse täpsust.

Täisvärviliste piltide puhul on üheks parameetriks maksimaalne värvide arv, mida selles vormingus saab esitada. Kõige sagedamini kasutatavatel piltidel on 16, 256, 65536 (kõrge värv) ja 10,7 miljonit (true Color) värvi.

Pildi eeltöötluse algoritmid

0 0 0 0 1 1 1 0 0

120 122 125 128 115 117 118

1 0 0 0 1 1 1 1 0

119 121 124 125 128 130 133

1 1 0 0 1 1 0 0 1

122 122 124 123 127 126 128

120 121 123 125 127 125 126

1 1 1 0 1 1 0 0 0

118 110 109 108 108 109 110

0 0 1 0 0 1 0 0 1

Pildi eeltöötluse algoritmid

Indeksi maatriks

31 15 03 09

Paleti maatriks

Pildi eeltöötluse algoritmid

Täisvärvilist pilti saab esitada mitte ainult RGB-vormingus, vaid ka teiste värvisüsteemide abil.

HSB süsteemis tähistatakse värvi järgmiste värviomadustega: Toon – toon;

Küllastus – küllastus; Heledus - heledus.

Arvatakse, et see värvisüsteem vastab inimese värvitaju iseärasustele.

LAB-süsteemis käsitletakse värvi heleduse ja kahe sõltumatu värvuse väärtuse kombinatsioonina, mis määravad piksli tegeliku värvi. Chroma A – valib värvi magentast roheliseni. Kromaatilisus B – teine ​​värvikomponent on valitud vahemikust kollasest tsüaanini.

Värvide esitamiseks on ka teisi süsteeme. Loomulikult on need kõik seotud ja ühest esitusest võib saada teise. Värvisüsteemide mitmekesisus on tingitud nende abiga lahendatud ülesannetest. Näiteks LAB-süsteemis on mugavam teha värvikorrektsiooni, RGB-süsteemis taasesitada pilti monitori ekraanil, paremini printida,

Pildi eeltöötluse algoritmid

kasutades CMYK esitust. Kujutiste töötlemisel ja äratundmisel töötavad nad aga igal juhul ühte või mitut maatriksit sisaldavate kujutiste rasteresitusega.

Eeltöötlusalgoritmide klassifikatsioon

Pildi eeltöötluse algoritmid jaotatakse sõltuvalt klassifitseerimisfunktsioonist erinevatesse rühmadesse. Kõik eeltöötlusalgoritmid peavad kas mõnes mõttes parandama piltide kvaliteeti või teisendama need järgnevaks töötlemiseks kõige mugavamasse vormi.

Algoritme, mille eesmärk on parandada kujutise värvide taasesitamist, nimetatakse värviparandusalgoritmideks. Sellesse rühma kuuluvad ka algoritmid, mis töötavad pooltooni piltidega, mis muudavad nende heledust ja kontrasti omadusi.

Algoritme, mille eesmärk on töödelda kujutiste ruumilisi omadusi, nimetatakse algoritmideks ruumiline filtreerimine. Sellesse rühma kuuluvad mürasummutusalgoritmid, ruumilise silumise algoritmid ja ruumilise võimenduse algoritmid, ruumiliste sageduste summutamise ja võimendamise algoritmid.

Algoritme, mis sooritavad kujutisega geomeetrilisi toiminguid, nimetatakse geomeetrilised töötlusalgoritmid... Need sisaldavad:

Pildi eeltöötluse algoritmid

Pildi kärpimine - ristkülikukujulise kujundi teatud osa algkujutise valik;

Muutke pildi suurust. Need algoritmid kasutavad erinevaid interpoleerimismeetodeid, mis võimaldavad kas suurendatud pildil puuduvad pikslid õigesti täita või pildi vähendamisel piksliväärtusi ümber arvutada.

Pöörake pilti. Need algoritmid pööravad algset pilti etteantud nurga võrra, arvutades erinevate interpolatsioonimeetodite abil piksliväärtused õigesti ümber.

Algoritme, mis teostavad teisendusi ühest värvisüsteemist teise, nimetatakse värvide teisendamise algoritmid... Need sisaldavad ka algoritme värvipiltide teisendamiseks halltoonides ja binaarsusalgoritme, mis teisendavad algse pildi binaarseks.

Algoritme, mis tõstavad esile mõned piirkonnad originaalpildil vastavalt erinevatele, sageli mitteametlikele tingimustele, nimetatakse segmenteerimisalgoritmideks. Sellise algoritmi näide võib olla näiteks algoritm, mis peaks valima dokumendipildil teksti- ja graafilise teabe alad, või algoritm, mis valib tekstipildis üksikutele sõnadele viitavad alad.

Pildi eeltöötluse algoritmid

Ruumilise filtreerimise algoritmid

Pildi ruumiline filtreerimine matemaatilisel kujul on diskreetse kujutise diskreetne konvolutsioon ruumifiltri teatud impulssreaktsiooniga

Kui (i, j)

Im (i m, j n) h (m, n), kus:

m N11 n N21

Im, kui algse ja filtreeritud kujutise maatriksid, h filtri impulssreaktsiooni maatriks,

N 11, N 21 on impulssreaktsiooni veergude alumised ja ülemised piirid, N 12, N 22 on impulssreaktsiooni ridade vasak- ja parempoolsed piirid.

Impulssvastuse maatriksi saab saada ruumifiltri arvutamisel määratud parameetrite alusel. Suur hulk kirjandust, mis on pühendatud näiteks digitaalsele filtreerimisele, on pühendatud ruumifiltrite arvutamise meetoditele. Praktilisteks arvutusteks saab kasutada standardseid matemaatilisi pakette, näiteks “MATLAB” süsteem sisaldab “Image Filter Design” filtriarvutussüsteemi.

Pange tähele, et filtreerimist saab teostada ka sageduspiirkonnas. Selles

Pildi eeltöötluse algoritmid

Sellisel juhul on filtreerimise järjekord järgmine:

Teisendage kujutis ruumilisest domeenist sageduspiirkonnaks, kasutades 2D diskreetset Fourier' teisendust

Tehke pildi sagedusmaatriksi elemendipõhine korrutamine filtri sagedusmaatriksiga

Teisendage saadud tulemus ruumiliseks domeeniks, kasutades pöördvõrdelist kahemõõtmelist diskreetset Fourier' teisendust.

ma (x, y)

ma (f x, f y)

Kui (f x, f y) Im (f x, f y) H (f x, f y)

Kui (fx, f y)

Kui (x, y).

Piltide filtreerimist sageduspiirkonnas kasutatakse arvutuste suure hulga tõttu harva. Seda filtreerimismeetodit kasutatakse aga laialdaselt teoreetilistes arvutustes, kui analüüsitakse pilditöötluse võimalusi. See võimaldab teil selgelt visualiseerida, millist filtreerimist on vaja. Näiteks kui teil on vaja pildil esile tuua teravaid heleduse muutusi, siis on ilmne, et peate kasutama kõrgpääsfiltreid. Vastupidi, kui teil on vaja vabaneda madalsageduslikest häiretest - värinatest, üksikutest ülepingetest jne, siis peate kasutama madalpääsfiltreid. Konkreetsed filtriparameetrid valitakse häirete sagedusanalüüsi ja originaalpildi omaduste põhjal.