Attēlu apstrādes pamatalgoritmi. Attēlu priekšapstrādes algoritmi Attēlu priekšapstrāde

Digitālais troksnis ir attēla defekts, kas ir nejauši izvietoti apgabali, kas ir tuvu pikseļu izmēram un atšķiras no sākotnējā attēla spilgtuma vai krāsas ziņā. Trokšņu samazināšanai ir svarīga loma video secību un attēlu pārraidē, apstrādē un saspiešanā.

Video trokšņi var rasties vairāku iemeslu dēļ:

1. Nepilnīga video uzņemšanas iekārta.

2. Slikti fotografēšanas apstākļi – piemēram, nakts foto/video uzņemšana, fotografēšana sliktos laikapstākļos.

3. Traucējumi pārraides laikā pa analogajiem kanāliem - traucējumi no elektromagnētisko lauku avotiem, pārvades līnijas aktīvo komponentu (pastiprinātāju) iekšējais troksnis. Piemērs varētu būt televīzijas signāls.

4. Neprecizitātes filtrēšanā, iegūstot spilgtuma un krāsu atšķirību signālus no analogā saliktā signāla utt.

Trokšņa daudzums attēlā var svārstīties no gandrīz neredzama plankuma digitālā fotogrāfijā, kas uzņemta labā apgaismojumā, līdz astronomiskiem attēliem, kuros troksnis aizsedz lielu daļu noderīgās informācijas, ko var iegūt tikai ar darbietilpīgu attēlu apstrādi.

Ir dažādi trokšņu veidi atkarībā no attēla nejaušā trokšņa sadalījuma veida. Praksē visizplatītākie ir šādi veidi:

Baltais Gausa troksnis

Viens no visizplatītākajiem trokšņiem ir aditīvais Gausa troksnis, ko raksturo vērtību pievienošana ar normālu sadalījumu un nulles vidējo vērtību katram attēla pikselim. Termins "piedeva" nozīmē, ka šāda veida troksnis tiek pievienots noderīgajam signālam. Rodas, ja signāla uztveršana ir slikta.

Digitālais troksnis

Digitālo trokšņu cēlonis visbiežāk ir saistīts ar fotografēšanai izmantotā aprīkojuma īpatnībām - parasti ar nepietiekamu matricas gaismas jutību. Šāda veida troksni raksturo dažu attēla pikseļu aizstāšana ar fiksētas vai nejaušas vērtības vērtībām. Ja punktu spilgtums ir aptuveni vienāds, digitālo troksni sauc arī par "impulsu". Ja punktu intensitāte var atšķirties no melnas līdz baltai, šo troksni sauc par sāls un piparu troksni.

Parasti šāda veida troksnis ietekmē tikai nelielu pikseļu skaitu attēlā.

Kombinētais troksnis

Gadījumi, kad attēls vienādā skaļumā ir trokšņains ar Gausa troksni un nejaušiem impulsiem, ir daudz retāk sastopami. Šo komplektu sauc par kombinēto troksni.

Attēlu skenēšanas defekti

Tāpat attēlā var parādīties sveši efekti, piemēram, plaisas, skrāpējumi, zilumi. Šiem artefaktiem nav viendabīgas struktūras, un to formas un atrašanās vietas noteikšana lielā mērā ir ārpus matemātiskās analīzes. Šāda veida defektus var novērst tikai ar manuālu attēlu apstrādi, tāpēc tie šajā darbā netiek apskatīti.

Trokšņa noņemšanas algoritmi

Algoritmu trokšņu noņemšanai no attēliem ir liels skaits, un tos var izmantot ne tikai īpašas apstrādes programmas, bet arī dažas foto un video kameras. Neskatoties uz to, joprojām nav universāla filtrēšanas algoritma, jo, apstrādājot attēlu, vienmēr ir jāizvēlas starp nevēlamo efektu novēršanas pakāpi un sīku detaļu saglabāšanu, kuru īpašības ir līdzīgas troksnim. Turklāt algoritms, kas viegli tiek galā ar viena veida troksni, var tikai sabojāt attēlu ar cita veida troksni.

Apskatīsim vairākus vispazīstamākos attēla trokšņu slāpēšanas algoritmus.

Lineāra pikseļu vidējā noteikšana

Vienkāršākā ideja par trokšņu novēršanu ir vidējās pikseļu vērtības noteikšana telpiskajā apkārtnē. Tā kā troksnis mainās neatkarīgi no pikseļa uz pikseļu, blakus esošo pikseļu troksnis tiks izslēgts, kad tos pievienos. Tiek norādīts taisnstūrveida logs, kas pēc kārtas tiek uzlikts katram attēla pikselim. Centrālā pikseļa vērtība tiek aprēķināta, pamatojoties uz visu blakus esošo pikseļu analīzi, kas ietilpst loga apgabalā. Attiecīgi, jo lielāks ir ņemts logs, jo galu galā tiks iegūta lielāka vidējā vērtība, kas rada spēcīgu izplūšanas efektu.

Vienkāršākajā versijā blakus esošo pikseļu analīze ir to vidējo aritmētisko vērtību atrašana. Lai samazinātu pikseļu ietekmi, kas neietilpst tajā pašā apgabalā, kur aplūkojamais (piemēram, tumša kontūra uz gaiša fona), var ievadīt noteiktu skaitlisko slieksni un ņemt vērā tikai tos kaimiņus, kuru starpība. no centrālā pikseļa nepārsniedz šo slieksni. Jo augstāka ir sliekšņa vērtība, jo spēcīgāka būs vidējā aprēķināšana. Apsvērto iespēju var sarežģīt, ieviešot svara koeficientus katram blakus pikselim atkarībā no tā attāluma līdz apskatāmā apgabala centram.

Šo metodi var izmantot arī laika domēnā, nosakot vidējo katra pikseļa vērtību virs video straumes blakus esošajiem kadriem (katram pikselim tiks aprēķināts vidējais pikseļi, kas atrodas vienā un tajā pašā pozīcijā blakus esošajos kadros).

Šis algoritms ir ļoti vienkāršs, taču tas nedod labu rezultātu, tajā pašā laikā tas rada spēcīgu attēla detaļu izplūšanu.

Gausa filtrs

Tā darbības princips ir līdzīgs iepriekšējai metodei, kā arī pieder pie izlīdzināšanas filtru skaita. Tomēr trokšņu samazināšanai, izmantojot lineāro vidējo filtru, ir būtisks trūkums: visiem apstrādātā pikseļa kaimiņiem ir vienāda ietekme uz rezultātu neatkarīgi no attāluma līdz tam. Gausa filtrs arī vidēji nosaka centrālo pikseļu un tā kaimiņus noteiktā apgabalā, tikai tas notiek saskaņā ar noteiktu likumu, ko nosaka Gausa funkcija.

Kur parametrs y nosaka izplūšanas apjomu un parametrs A nodrošina normalizāciju. Rezultātā apskatāmā apgabala centrālajam pikselim būs vislielākā vērtība, kas atbilst Gausa sadalījuma maksimumam. Pārējo elementu vērtībām būs arvien mazāka ietekme, palielinoties attālumam no centra.

Matricas filtru, kas aprēķināts pēc norādītās formulas, sauc par Gausa filtru; jo lielāks tā izmērs, jo spēcīgāks ir izplūdums (ar fiksētu y). Tā kā šis filtrs ir atdalāms, to var attēlot šādi:

No tā izriet, ka konvolūciju var veikt secīgi pa rindām un kolonnām, kas rada ievērojamu metodes paātrinājumu lieliem filtru izmēriem.

2Dcleaner algoritms

Aizstāj katru attēla pikseļu ar blakus esošo pikseļu vidējo vērtību, kas uzņemta apgabalā, ko ierobežo noteikts rādiuss. Šajā gadījumā tiek ņemti vērā ne visi punkti rādiusā, bet tikai tie, kuru vērtība atšķiras no centrālā pikseļa ne vairāk kā par kādu iepriekš noteiktu vērtību (slieksni). Tādējādi viendabīgas krāsas apgabali ir izplūduši vairāk nekā objektu asās malas. Tas samazina zema līmeņa trokšņus attēlā, vienlaikus saglabājot neskartas smalkas detaļas.

Vidējā filtrēšana

Lineārie algoritmi izrādās ļoti efektīvi Gausa trokšņa slāpēšanā, kad blakus esošie pikseļi, lai arī tiem ir noteikta nejauša vērtību izplatība, tomēr paliek noteiktās vidējās vērtībās, kas raksturīgas reģionam, kuram tie pieder. Tomēr dažreiz nākas saskarties ar attēliem, ko izkropļojuši cita veida traucējumi. Šādu traucējumu piemērs ir impulsu troksnis, kas izpaužas, ja attēlā ir nejauši izkliedēti nejauša spilgtuma punkti. Vidējā noteikšana šajā gadījumā “izsmērē” katru šādu punktu blakus esošajos pikseļos, izraisot attēla kvalitātes pasliktināšanos.

Standarta veids, kā slāpēt impulsu troksni, ir vidējā filtrēšana. Šī nelineārā attēlu apstrādes metode novērš novirzes, bet atšķirībā no lineārajiem vidējās noteikšanas algoritmiem atstāj nemainīgas monotoniskās pikseļu secības. Pateicoties tam, vidējie filtri spēj bez kropļojumiem saglabāt objektu kontūras un atšķirības starp dažāda spilgtuma apgabaliem, vienlaikus efektīvi nomācot nekorelējošus trokšņus un maza izmēra detaļas.

Filtrēšanas princips: tiek iestatīts noteikts nepāra izmēra logs, kas secīgi tiek uzklāts uz katra attēla pikseļa. Starp visiem pikseļiem aplūkotajā apgabalā, ieskaitot centrālo, tiek meklēta vidējā vērtība, kas galu galā tiek piešķirta apgabala centrālajam pikselim. Šajā gadījumā mediāna nozīmē reģionam piederošo sakārtoto pikseļu vērtību masīva vidējo elementu. Nepāra loga izmērs ir izvēlēts precīzi, lai nodrošinātu vidējā pikseļa esamību.

Ir iespējams izmantot vidējo filtru, lai attēlā slāpētu balto Gausa troksni. Tomēr pētījums par trokšņu slāpēšanu, izmantojot vidējo filtrēšanu, parāda, ka tā efektivitāte šīs problēmas risināšanā ir zemāka nekā lineārajai filtrēšanai.

Vidējā filtrēšana nav bez trūkumiem, kas raksturīgi lielākajai daļai trokšņu slāpēšanas filtru - maskas izmēra palielināšana, lai uzlabotu trokšņu slāpēšanas pakāpi, samazina attēla skaidrību un tā kontūru izplūšanu. Taču negatīvo ietekmi iespējams minimizēt, pielietojot mediānas filtrēšanu ar dinamisko maskas izmēru (additīvā mediāna filtrēšana), kuras princips paliek nemainīgs, tikai slīdošā filtrēšanas loga izmērs var mainīties atkarībā no blakus esošo pikseļu spilgtuma.

Attēla asināšana

Gandrīz visi attēla trokšņu slāpēšanas algoritmi noved pie tā izplūšanas, kā rezultātā tiek zaudētas sīkas detaļas un ir apgrūtināta attēla uztvere. Attēla asināšanas filtrs var daļēji kompensēt šo negatīvo efektu un atjaunot zaudēto kontūru kontrastu un krāsu pārejas. Asums var būt atkarīgs arī no daudziem citiem faktoriem – no objektīva kvalitātes, no izmantotās diafragmas atvēruma, no antimuarē filtra biezuma, kas atrodas uz vairuma digitālo kameru matricas, kas dažādās pakāpēs izplūdo attēlu. Tāpat arī attēlu asums nereti ir jāpalielina pēc to izmēru samazināšanas, jo tādējādi neizbēgami tiek zaudēta daļa informācijas un līdz ar to arī kontūru skaidrība.

Neasā maskēšana ir paņēmiens, kas ļauj, uzlabojot attēla toņu pāreju kontrastu, uzlabot tā vizuālo uztveri asināšanas ilūzijas dēļ. Faktiski asums paliek tajā pašā līmenī, jo principā nav iespējams atjaunot zaudētās attēla detaļas, bet kontrasta uzlabošana starp dažāda spilgtuma zonām noved pie tā, ka attēls tiek uztverts kā skaidrāks.

5.1. attēls — jēdziena "kontūras asums" ilustrācija

Attēla asums ir atkarīgs no spilgtuma starpības lieluma starp apgabaliem (W), kas veido tā kontūras, un no šīs atšķirības izmaiņu asuma (H).

Neasās maskēšanas tehnika vispirms tika izmantota filmu fotogrāfiju apstrādei. Digitālajai attēlu apstrādei pielāgotā metode maz atšķiras no oriģinālās: no attēla tiek atņemta tā sauktā “neasā maska” - tā izplūdušā un apgrieztā kopija. Rezultāts ir jauns attēls, kurā ir tikai oriģināla gaišās kontūras. Tumšas kontūras var iegūt, vienkārši apgriežot rezultātu.

Ja turpmāk no sākotnējā attēla atņemsiet tumšās kontūras un pievienosiet gaišās, pie katras spilgtuma atšķirības iegūsiet ievērojamu kontrasta pieaugumu.

Varat izmantot jebkuru no trokšņu slāpēšanas filtriem, piemēram, Gausa filtru, lai aizmiglotu oriģinālu un iegūtu “neasu masku”.

5.2. attēls. Neasas maskēšanas rezultāts

Konvolūcijas operācija diezgan bieži tiek izmantota attēlu apstrādē. Papildus asināšanai to izmanto izplūšanai, spilgtuma palielināšanai, apgaismošanai utt.

Attēla konvolūcija ir noteikta pikseļa jaunas vērtības aprēķināšanas darbība, kurā tiek ņemtas vērā apkārtējo blakus esošo pikseļu vērtības. Vispārīgā nozīmē šis termins nozīmē kādu darbību, kas tiek veikta katrā attēla daļā.

Konvolūcijas galvenais elements ir konvolūcijas maska ​​- tā ir matrica (patvaļīga izmēra un malu attiecības). Šo masku bieži sauc par filtru, kodolu, modeli vai logu. Matricas elementu vērtības parasti sauc par koeficientiem.

Visbiežāk kvadrātveida matrica tiek izmantota kā konvolūcijas kodols.

Attēla apstrāde ar konvolūcijas darbību ir šāda: Matricas centrālais elements, ko sauc par “enkuru”, tiek secīgi uzlikts katram attēla pikselim. Aplūkojamā pikseļa jaunā vērtība tiek aprēķināta kā blakus esošo pikseļu vērtību summa, kas reizināta ar atbilstošajiem konvolūcijas maskas koeficientiem.

Iegūtais efekts ir atkarīgs no izvēlētā konvolūcijas kodola.

Kontrastu uzlabojošā filtra kodola vērtība ir lielāka par 1 punktā (0, 0), un visu vērtību kopējā summa ir vienāda ar 1. Piemēram, kontrastu uzlabojošais filtrs ir filtri ar kodoliem, ko norāda matricas:

Kontrasta pastiprināšanas efekts tiek panākts ar to, ka filtrs uzsver atšķirību starp blakus esošo pikseļu intensitātēm, noņemot šīs intensitātes vienu no otras. Šis efekts būs spēcīgāks, jo lielāka būs kodola centrālā termina vērtība.

Uz konvolūciju balstīta lineārā kontrasta palielināšanas filtrēšana var radīt redzamus krāsu halus ap attēla malām.

Apgaismojuma atšķirības kompensācija

Attēla apgaismojuma problēmas visbiežāk rodas, kad kadrā iekļūst logi, saule vai citi neregulēti gaismas avoti.

Šo situāciju sauc par "lieko gaismu", un tā noved pie tā, ka pārāk spilgta balsta apgaismojuma dēļ objektu, kas atrodas uz pārāk spilgtu objektu fona, detaļas un krāsa tiek zaudēta, kļūstot grūti atšķirt.

Bieži sastopama arī gaismas trūkuma situācija. To var izraisīt fotografēšana tumšās telpās ar sliktu apgaismojumu, kā arī video tehnikas ierobežotais jutības diapazons.

Viena mēroga Retinex algoritms

Mēģinot padarīt attēlu gaišāku, palielinot katra pikseļa spilgtumu par noteiktu fiksētu vērtību, sākotnēji gaišie apgabali var tikt pilnībā izpūsti.

Šādos gadījumos ir jāpiemēro “gudra” krāsu korekcija, kas spētu izlīdzināt attēla apgaismojumu, mazākā mērā apstrādājot gaišos laukumus nekā tumšos.

Šīs prasības izpilda Single Scale Retinex algoritms, kas balstīts uz tīklenes receptoru dizaina principiem. Algoritma galvenais mērķis ir sadalīt attēlu komponentos, kas ir atbildīgi par apgaismojumu un detaļām atsevišķi. Tā kā attēlā redzamās problēmas ir saistītas ar ainas apgaismojumu, tad, saņemot par apgaismojumu atbildīgo komponentu, kļūst iespējams to pārveidot atsevišķi no attēla, tādējādi būtiski paaugstinot tā kvalitāti.

Jebkuru attēlu var attēlot kā augstfrekvences signāla (atspīdums - R) un zemas frekvences signāla (apgaismojums - I) reizinājumu.

S (x, y) = I (x, y) * R (x, y) (5.6.)


Attēls 5.3 - attēla attēlojums Retinex algoritmā.

Aptuvenu apgaismojuma attēlu var iegūt, izmantojot zemas caurlaidības filtrēšanu - citiem vārdiem sakot, vienkārši aizmiglojot sākotnējo attēlu, piemēram, ar Gausa filtru.

kur G - Gausa filtrs

Tā kā signāla logaritms nemaina frekvenci un logaritmiskās funkcijas īpašību dēļ (reizinājuma logaritms ir vienāds ar faktoru logaritmu summu), signālu reizinājuma dalīšanas problēma var būt vienkāršots līdz signālu summas dalīšanas problēmai.

Pēc tam atliek tikai ņemt eksponentu no saņemtā signāla, lai atgrieztu to sākotnējā amplitūdas skalā. Iegūto augstfrekvences komponentu var pievienot izplūdušajam un izgaismotajam oriģinālajam attēlam, kas darbojas kā jauns gaismas modelis.

Apgaismojuma izlīdzināšanas efekts var būt pārāk spēcīgs (tumšajiem apgabaliem būs tāds pats spilgtums kā gaišajiem). Lai samazinātu efektu, jūs varat vienkārši sajaukt apstrādāto attēlu ar oriģinālu noteiktā proporcijā.

Gamma korekcija

Sākotnējais gamma korekcijas mērķis ir kompensēt attēloto krāsu atšķirības dažādās izvades ierīcēs, lai attēls izskatītos vienādi, skatoties dažādos monitoros. Pateicoties pielietotās jaudas funkcijas nelineārajam izskatam, gamma korekcija ļauj arī palielināt attēla tumšo apgabalu kontrastu, nepāreksponējot spilgtas detaļas un nezaudējot attēla objektu malu atšķiramību.

Informācija par spilgtumu analogā formā televīzijā, kā arī digitālā formā visbiežāk sastopamajos grafiskajos formātos tiek glabāta nelineārā mērogā. Monitora ekrāna pikseļa spilgtumu var uzskatīt par proporcionālu

kur I ir pikseļa spilgtums displeja ekrānā (vai krāsu komponentu spilgtums, sarkans, zaļš un zils atsevišķi),

V ir krāsas skaitliskā vērtība no 0 līdz 1 un

d - gamma korekcijas indikators.

Ja r ir mazāks par 1, tad līmeņu pārraides raksturlielumi būs izliekti un iegūtais attēls būs gaišāks nekā oriģināls. Ja r ir lielāks par 1, tad līmeņu pārneses raksturlielumi būs ieliekti un iegūtais attēls būs tumšāks par oriģinālu.

Pēc noklusējuma parametrs r ir vienāds ar 1, kas atbilst līmeņu pārraides lineārajam raksturlielumam un gamma korekcijas neesamībai.

Attēla kontūru izvēle

Kontūru analīzi var izmantot, lai aprakstītu, atpazītu, salīdzinātu un meklētu grafiskos objektus, kas attēloti kā kontūras. Tā kā kontūru izmantošana izslēdz objekta iekšējos punktus, tas var ievērojami samazināt šo darbību skaitļošanas un algoritmisko sarežģītību.

Attēls 5.4 - Jaudas funkcijas formas izmaiņas atkarībā no parametra r

Objekta kontūra ir punktu saraksts, kas attēlo noteiktu līkni attēlā, kas atdala objektu no fona. Visbiežāk gar kontūru tiek novērots spilgtuma vai krāsas lēciens.

Lai vienkāršotu kontūru meklēšanu attēlā, varat to iepriekš binarizēt.

Sobel filtrs atlasa objektu robežas, pamatojoties uz to spilgtumu. Tā kā krāsu komponents netiek ņemts vērā, attēli vispirms ir jāpārveido pelēktoņos.

Sobel filtrs tiek lietots secīgi katram pikselim, aprēķinot tā spilgtuma gradienta aptuveno vērtību. Gradients katram attēla punktam (spilgtuma funkcija) ir divdimensiju vektors, kura sastāvdaļas ir attēla spilgtuma horizontālie un vertikālie atvasinājumi.

Katrā attēla punktā gradienta vektors ir orientēts lielākā spilgtuma pieauguma virzienā, un tā garums atbilst spilgtuma izmaiņu lielumam. Šie dati ļauj izdarīt pieņēmumu par iespējamību atrast apskatāmo punktu uz noteikta objekta robežas, kā arī par šīs robežas orientāciju.

Tas. Sobel operatora darbības rezultāts nemainīga spilgtuma apgabala punktā būs nulles vektors, bet punktā, kas atrodas uz dažāda spilgtuma reģionu robežas - vektors, kas šķērso robežu pieaugošā spilgtuma virzienā.

Lai aprēķinātu aptuvenās atvasinājumu vērtības katrā attēla punktā, Sobel filtrs izmanto konvolūciju ar 3 × 3 matricu.

Sobela matricas koeficienti:

Gradienta galīgo vērtību aprēķina pēc tuvinājuma pēc formulas:

| G | = | Gx | + | Gy |

Kenija robežu detektors

Lai gan Kenija darbs tika veikts datorredzes pirmajās dienās (1986), Kenny robežu detektors joprojām ir viens no labākajiem detektoriem. Kenija metode ir daudzpakāpju algoritms, un tā ietver šādas darbības:

1. Attēla attīrīšana no trokšņiem un nevajadzīgām detaļām.

2. Attēla attīrīšana no trokšņiem un nevajadzīgām detaļām.

3. Meklējiet attēlu gradientus, piemēram, pēc Sobel operatora.

4. Ne-maksimuma nomākšana. Kā robežas ir atzīmētas tikai vietējās augstākās vietas.

5. Dubultā sliekšņa filtrēšana. Potenciālās robežas nosaka sliekšņi.

6. Izsekojiet ceļus (savienojiet malas ar ceļiem)

Tā kā mazākais attēla troksnis var pārkāpt tā kontūru integritāti, pirms meklēšanas uzsākšanas ieteicams attēlu filtrēt ar jebkuru trokšņu samazināšanas metodi. Lielā darbības ātruma un ieviešanas vienkāršības dēļ visbiežāk tiek izmantots Gausa filtrs. Attēla malas var būt dažādos virzienos, tāpēc Kenija algoritms izmanto četrus filtrus, lai noteiktu horizontālās, vertikālās un diagonālās malas. Izmantojot robežu noteikšanas operatoru (piemēram, Sobel operatoru), iegūst vērtību pirmajam atvasinājumam horizontālā virzienā (Gy) un vertikālajā virzienā (Gx). No šī gradienta varat iegūt apmales virziena leņķi:

Apmales virziena leņķis ir noapaļots līdz vienam no četriem stūriem, kas attēlo vertikālo, horizontālo un divas diagonāles (piemēram, 0, 45, 90 un 135 grādi). Par robežām tiek deklarēti tikai tie pikseļi, kuros tiek sasniegts lokālais gradienta maksimums gradienta vektora virzienā. Virziena vērtībai jābūt 45 ° reizinājumam. Pēc non-maxima nomākšanas malas kļūst precīzākas un plānākas.

Nākamajā solī, veicot sliekšņa filtrēšanu katram aplūkotajam pikselim, tiek noteikts, vai tas pieder pie attēla robežām. Jo augstāks slieksnis, jo viendabīgākas būs atrastās kontūras, tomēr vājās malas var ignorēt. No otras puses, sliekšņa samazināšana palielina algoritma jutību pret troksni. Kenija robežu atlasē tiek izmantoti divi filtrēšanas sliekšņi: ja pikseļa vērtība ir augstāka par augšējo robežu, tiek ņemta maksimālā vērtība (robeža tiek uzskatīta par derīgu), ja zemāka, pikselis tiek nomākts, punkti, kuru vērtība ir diapazonā starp sliekšņiem ir fiksēta vidējā vērtība (tie tiks precizēti nākamajā darbībā).

Pēdējais attēla apstrādes posms ir atsevišķu malu sasaistīšana vienotās kontūrās. Pikseļi, kas iepriekšējā solī saņēma vidējo vērtību, tiek vai nu apspiesti (ja tie nepieskaras nevienai no jau konstatētajām malām), vai arī tiek pievienoti atbilstošajai kontūrai.

Segmentācija

Lielākā daļa attēlu, kas iegūti no foto un video tehnikas, ir rastra, tas ir, tie sastāv no krāsainiem punktiem, kas sakārtoti taisnstūra režģī. Tomēr cilvēki apkārtējo pasauli uztver kā veselu objektu kopumu, nevis punktu matricu. Cilvēka smadzenes spēj apvienot atšķirīgas attēla detaļas viendabīgās zonās, zemapziņā sadalot to objektos. Šo procesu sauc par segmentāciju, un to var īstenot programmatiski, risinot datora attēlu analīzes un modeļa atpazīšanas problēmu. Segmentēšana tiek veikta analīzes sākumposmā, un tās izpildes kvalitāte var būtiski ietekmēt tās ātrumu un precizitāti.

Segmentācijas metodes var iedalīt divās klasēs: automātiskā - nav nepieciešama lietotāja mijiedarbība un interaktīvā - izmantojot lietotāja ievadi tieši procesā.

Pirmajā gadījumā netiek izmantota a priori informācija par reģionu īpašībām, bet tiek izvirzīti daži nosacījumi paša attēla sadalīšanai (piemēram, visiem reģioniem jābūt vienādiem pēc krāsas un faktūras). Tā kā šajā segmentācijas problēmas formulējumā netiek izmantota a priori informācija par attēlotajiem objektiem, šīs grupas metodes ir universālas un piemērojamas jebkuriem attēliem.

Lai aptuvenu novērtētu metodes kvalitāti konkrētā problēmā, parasti tiek reģistrētas vairākas īpašības, kurām vajadzētu būt labai segmentācijai:

§ reģionu viendabīgums (krāsas vai faktūras viendabīgums);

§ kaimiņu reģionu atšķirības;

§ reģiona robežas gludums;

§ neliels skaits mazu "cauruļu" reģionos;

Sliekšņa segmentācija

Sliekšņa noteikšana ir vienkāršākā uz attēlu apstrādi vērsta metode, kuras atsevišķiem viendabīgiem laukumiem atšķiras vidējais spilgtums. Tomēr, ja attēls ir nevienmērīgi izgaismots, dažu objektu intensitāte var sakrist ar fonu, kas padarīs sliekšņa segmentāciju neefektīvu.

Vienkāršākais un tajā pašā laikā bieži izmantotais sliekšņa segmentācijas veids ir binārā segmentācija, kad attēlā izšķir tikai divus viendabīgu apgabalu veidus.

Šajā gadījumā katra avota attēla punkta pārveidošana izvadē tiek veikta saskaņā ar noteikumu:

kur x0 ir vienīgais apstrādes parametrs, ko sauc par slieksni. Izvades spilgtuma līmeņi y0 un y1 var būt patvaļīgi, tie kalpo tikai kā etiķetes, ar kuru palīdzību tiek iezīmēta iegūtā karte - piešķirot tās punktus attiecīgi K1 vai K2 klasēm. Ja iegūtais produkts tiek sagatavots vizuālai uztverei, tad bieži vien to vērtības atbilst melnā un baltā krāsā. Ja ir vairāk nekā divas klases, tad sliekšņa noteikšanas laikā ir jāiestata sliekšņu saime, kas atdala dažādu klašu spilgtumu vienu no otras.

Sliekšņa segmentācija ir labi piemērota, lai attēlā atlasītu nelielu skaitu nekrustojošu objektu, kuriem ir viendabīga struktūra un kuri asi izceļas no fona. Palielinoties attēla neviendabīguma pakāpei un līdz ar to arī segmentu skaitam un to sarežģītībai, šāda veida segmentācija kļūst neefektīva.

Segmentēšana, pamatojoties uz diagrammas sadalīšanu

Grafu teorijas metodes ir viena no visaktīvāk attīstītajām jomām attēlu segmentācijā.

Šīs grupas metožu vispārīgā ideja ir šāda. Attēls tiek parādīts svērta grafika veidā ar virsotnēm attēla punktos. Grafika malas svars atspoguļo punktu līdzību noteiktā nozīmē (attālums starp punktiem noteiktā metrikā). Attēlu sadalīšana tiek modelēta, izmantojot grafiku izgriezumus.

Parasti grafu teorijas metodēs tiek ieviesta griezuma "izmaksas" funkcionālā, kas atspoguļo iegūtās segmentācijas kvalitāti. Tātad problēma, kas saistīta ar attēla sadalīšanu viendabīgos apgabalos, tiek samazināta līdz optimizācijas problēmai, lai grafikā atrastu minimālo izmaksu samazinājumu. Šī pieeja ļauj papildus segmentu krāsas un faktūras viendabīgumam kontrolēt segmentu formu, izmēru, robežu sarežģītību utt.

Minimālo izmaksu griezuma atrašanai tiek izmantotas dažādas metodes: alkatīgie algoritmi (katrā solī tiek izvēlēta tāda maliņa, lai kopējās griezuma izmaksas būtu minimālas), dinamiskās programmēšanas metodes (tiek garantēts, ka izvēloties optimālo malu katrā solī mēs nonāksim pie optimālā ceļa), algoritms Dijkstra utt.

Interpolācija

Datorgrafikā attēlu mēroga maiņas procesā bieži tiek izmantota interpolācijas metode. Mainot pikseļu skaitu attēlā, interpolācija palīdz izvairīties no pārmērīgas attēla pikseļu veidošanās, kad tas tiek palielināts, vai svarīgu detaļu zudumu, kad tas tiek samazināts.

Interpolācijas procesā starp attēla pikseļiem tiek ievietoti papildu punkti, kuru aptuvenais tonis un krāsa tiek aprēķināta, izmantojot īpašu algoritmu, pamatojoties uz pieejamo datu analīzi par blakus esošajiem apgabaliem. Diemžēl, tā kā jebkura interpolācija ir tikai aptuvens, attēls vienmēr zaudē kvalitāti, kad tas tiek interpolēts.

Tuvākā kaimiņa interpolācija

Šis algoritms ir vienkāršākais interpolācijas veids, vienkārši palielinot katru attēla pikseļu līdz vajadzīgajam mērogam. Nepieciešams vismazākais apstrādes laiks, bet tas rada vissliktākos rezultātus.

Bilineārā interpolācija

Šāda veida interpolācija tiek veikta katrai divdimensiju režģa koordinātei. Šajā gadījumā attēls tiek uzskatīts par virsmu, krāsa ir trešā dimensija. Ja attēls ir krāsains, interpolācija tiek veikta atsevišķi trim krāsām. Katram nezināmajam punktam jaunajā attēlā bilineārā interpolācija ņem vērā četru apkārtējo zināmo pikseļu kvadrātu. Šo četru pikseļu vidējo svērto vērtību izmanto kā interpolēto vērtību. Rezultātā attēli izskatās ievērojami gludāki nekā tuvākā kaimiņa metodes rezultāts.

Bilineārā interpolācija labi darbojas pie lieliem veselu skaitļu mērogošanas faktoriem, taču tā diezgan daudz aizmiglo attēla asās malas.

Bikubiskā interpolācija iet vienu soli tālāk nekā bilineārā interpolācija, ņemot vērā apkārtējo pikseļu masīvu 4x4 — tikai 16. Tā kā tie atrodas dažādos attālumos no nezināmā pikseļa, tuvākie pikseļi aprēķinos tiek svērti vairāk. Bikubiskā interpolācija rada ievērojami asākus attēlus nekā iepriekšējās divas metodes, un tā ir neapšaubāmi optimāla apstrādes laika un izvades kvalitātes ziņā. Šī iemesla dēļ tas ir kļuvis par standartu daudzām attēlu rediģēšanas programmām (tostarp Adobe Photoshop), printera draiveriem un iebūvētajai kameras interpolācijai.

Mērogots attēls var kļūt daudz mazāk ass. Interpolācijas algoritmi, kas labāk saglabā asumu, ir arī jutīgāki pret muarē, savukārt tie, kas novērš muarē, parasti rada maigāku rezultātu. Diemžēl šis mērogošanas kompromiss ir neizbēgams.

Viens no labākajiem veidiem, kā ar to cīnīties, ir uzreiz pēc mērogošanas uzklāt neasu masku, pat ja oriģināls jau ir uzasināts.

5.2. Apakšsistēmā izmantoto algoritmu izvēles pamatojums

Galvenā prasība izstrādātajai programmatūras pakotnei bija samazināt video straumes atskaņošanas aizkavi tās priekšapstrādes laikā skaitļošanas klasterī. Turklāt fotografēšana var notikt jebkuros apstākļos, kas nozīmē, ka īsā laikā bija nepieciešams ieviest lielu skaitu vienkāršu filtru, lai neitralizētu dažādus negatīvos efektus. Turklāt īsā laikā bija nepieciešams izpētīt lielu skaitu negatīvo faktoru, kas parādās videoklipā, un ieviest vienkāršus filtrus, lai tos neitralizētu. Algoritmiem, kas atbilst izvirzītajām prasībām, jābūt viegli pieejamiem, labi optimizētiem, ļoti uzticamiem un tajā pašā laikā viegli īstenojamiem. OpenCV bibliotēkas funkcijām ir šādas īpašības, tāpēc, izvēloties konkrētas metodes filtru ieviešanai video straumes apstrādei, prioritāte tika dota šajā bibliotēkā ietvertajiem algoritmiem vienā vai otrā veidā.

Visi nobeiguma kvalifikācijas darba teorētiskajā daļā apskatītie algoritmi tika realizēti testa formā, lai praksē salīdzinātu to raksturojumus. Jo īpaši priekšroka tika dota kompromisam starp video straumes kadra apstrādes ātrumu un iegūtā rezultāta kvalitāti.

Rezultātā tika izvēlēti šādi algoritmi, lai ieviestu filtrus video straumes apstrādei skaitļošanas klasterī:

1. Lai noņemtu “piedevu balto” troksni, tika izvēlēts Gausa algoritms. Kā visizplatītākā trokšņu samazināšanas metode, tā ir ļoti labi optimizēta un tādēļ tai ir liels darbības ātrums.

2. Lai noņemtu “piedevu balto” troksni, tika izvēlēts Gausa algoritms. Kā visizplatītākā trokšņu samazināšanas metode, tā ir ļoti labi optimizēta un tādēļ tai ir liels darbības ātrums.

3. Lai noņemtu “impulsa” troksni, tika izvēlēta vidējā filtrēšana. Šī metode ir arī labi optimizēta, un tā ir īpaši izstrādāta, lai novērstu impulsu un sāls un piparu troksni.

4. Konvolūcija tika izvēlēta, lai palielinātu attēla asumu, jo tā darbojas daudz ātrāk nekā neasa maskēšana, tajā pašā laikā sniedzot pieņemamus rezultātus.

5. OpenCV bibliotēkā nav krāsu korekcijas algoritmu – tādēļ tika nolemts ieviest visizplatītāko un labi dokumentēto Single Scale Retinex algoritmu. Šī metode ir ļoti efektīva, taču nepieciešama optimizācija, lai paātrinātu darba ātrumu.

6. Kenija algoritms tika izvēlēts kā metode kontūru iegūšanai, jo tas dod labākus rezultātus nekā Sobel filtrs.

7. OpenCV bibliotēkā parādītais piramīdas segmentācijas algoritms darbojas ārkārtīgi lēni, tāpēc tika nolemts izmantot iepriekš apspriesto segmentācijas algoritmu uz grafikiem.

8. interpolācija - bikubiskā interpolācijas metode tika izvēlēta kā saprātīgākais kompromiss starp darba ātrumu un rezultāta kvalitāti.

Izmantotās programmatūras instalēšana un konfigurēšana.

Izmantotajā skaitļošanas klasterī darbojās GNU Linux (Ubuntu)

Pēc operētājsistēmas instalēšanas ir jāinstalē vairākas bibliotēkas, kas atbalsta attēlu failu lasīšanu un rakstīšanu, zīmēšanu uz ekrāna, darbu ar video utt.

CMake instalēšana

Projekts ir izveidots, izmantojot CMake (nepieciešama versija 2.6 vai jaunāka). To var instalēt ar komandu:

apt-get install cmake

Jums var būt nepieciešamas arī šādas bibliotēkas:

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

Instalējot ffmpeg

Lai opencv pareizi apstrādātu video failus, ir jāinstalē ffmpeg bibliotēka. Tas tiek darīts ar šādām komandām:

1) Bibliotēkas pirmkodu lejupielāde

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

2) Arhīva izpakošana ar pirmkodiem

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

3) Bibliotēkas konfigurācija

konfigurēt --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) Bibliotēkas celtniecība un iekārtošana

GTK instalēšana

Lai parādītu OpenCV logus, ir jāinstalē GTK + 2.x vai jaunāka bibliotēka, tostarp galvenes faili (libgtk2.0-dev)

apt-get install libgtk2.0-dev

Opencv instalēšana

Pēc visu saistīto bibliotēku instalēšanas tiek veikta opencv2.2 instalēšana ar šādām komandām:

1) OpenCV bibliotēkas pirmkodu lejupielāde

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

2) Arhīva izpakošana ar pirmkodiem

tar -xvf OpenCV-2.2.0.tar.bz2

3) Makefile ģenerēšana, izmantojot CMake.

4) OpenCV bibliotēkas izveide un uzstādīšana

5) Iespējams, jums būs jāreģistrē arī ceļš uz bibliotēkām

eksportēt LD_LIBRARY_PATH = / usr / local / lib: $ LD_LIBRARY_PATH

Izstrādātās programmatūras pakotnes uzstādīšana un kompilācija

Ir nepieciešams kopēt programmu pirmkodus no diska, kas pievienots šim paskaidrojumam. Kopējiet build_all.sh pakešfailu tajā pašā mapē un pēc tam palaidiet to. Ja sistēmā ir instalēts gcc kompilators, būvēšana notiks automātiski.

DIGITĀLS ĀRSTĒŠANA SIGNĀLI

17. tēma. ATTĒLU APSTRĀDE

Nav nekā, lai arī kāda cilvēka iztēle uzdrošināsies.

Tits Lukrēcijs. Romiešu filozofs un dzejnieks. 1. gadsimts BC NS.

Iztēle ir laba lieta. Bet izvelkot bomzi no pagraba, nomazgāt, pārvērsties par Apollo, iepakot sērkociņu kastītē un nosūtīt draugam draugam e-pastu, laba grafikas programma derēs labāk.

Anatolijs Pišmincevs, Novosibirskas Urālu skolas ģeofiziķis. XX gadsimts

Ievads.

1. Pamatjēdzieni. Attēlu grafiskais attēlojums. Krāsu attēlojums datorgrafikā. RGB krāsu modelis. CIE XYZ krāsu sistēma.

2. Rastra attēlu ģeometriskās transformācijas. Transformācijas jomas un posmi. Paraugu ņemšana. Divdimensiju signāla rekonstrukcijas interpolācijas sērija. Attēlu frekvences kropļojumi un to novēršana. Attēlu atkārtota atlase.

3. Attēlu filtrēšana. Lineārie filtri. Izlīdzinošie filtri. Kontrasta pieaugošie filtri. Atšķirību filtri. Divdimensiju cikliskā konvolūcija. Nelineāri filtri. Sliekšņa filtrēšana. Vidējā filtrēšana. Ekstrēmi filtri.

4. Attēlu saspiešana. Atkārtojuma garuma (RLE) kodēšanas algoritmi. Vārdnīcas algoritmi. Statistiskās kodēšanas algoritmi. Zaudēta attēla saspiešana. Attēla zuduma novērtējums. Furjē transformācija. Viļņu transformācija.

IEVADS

Pētniecības apjoms digitālās attēlveidošanas jomā strauji pieaug. Tas ir tāpēc, ka attēlu apstrāde ir daudzdimensionāla signālu apstrāde, un lielākā daļa signālu reālajā pasaulē ir daudzdimensionāli.


Attēls matemātiskajā attēlojumā ir divdimensiju signāls, kas nes milzīgu informācijas daudzumu. 500 × 500 elementu krāsains attēls ir vairāku simtu tūkstošu baitu masīvs. Šādu informāciju var apstrādāt tikai racionāli organizējot aprēķinus. Īpašiem attēlu apstrādes uzdevumiem var izmantot efektīvas apstrādes metodes, ņemot vērā konkrētā uzdevuma īpašības un ierobežojumus. Bet, ja mēs runājam par attēlu apstrādi plašas problēmu klases risināšanai, tad ir jāizceļ standarta darbību kopums, no kura var izveidot algoritmus patvaļīgu problēmu risināšanai. Tie ietver lineārās transformācijas, 2D konvolūciju un 2D diskrētās Furjē transformācijas.

Tomēr attēlu apstrādē plaši tiek izmantotas arī nelineāras transformācijas. Attēlu īpatnība ir tāda, ka atsevišķi attēla elementi atrodas noteiktā saistībā ar blakus esošajiem elementiem. Tāpēc lielākā daļa attēlu konvertēšanas algoritmu pēc būtības ir lokāli, tas ir, tie apstrādā attēlus pēc elementu grupām, kas atrodas apkārtnē ap doto vienu. Lineārās transformācijas apmierina apvidus īpašību un ļauj izveidot algoritmus, kuru skaitļošanas sarežģītība ir maz atkarīga no apkārtējās apkaimes lieluma. Tādas pašas īpašības ir nepieciešamas attēlu nelineārajām transformācijām. Šādu transformāciju klasē ietilpst algoritmi, kurus sauc par rangu filtrēšanas algoritmiem, kuru pamatā ir attēlu lokālās rangu statistikas aprēķini. Aprēķinot rangu statistiku un to atvasinājumus, ir iespējami vienkāršojumi, kas saistīti ar attēlu informācijas dublēšanu. Slavenākais šīs klases algoritms ir mediānas filtrēšanas algoritms. Citi ranga algoritmu piemēri ir ekstrēmi filtrēšanas algoritmi, kas aizvieto analizēto attēla elementu ar maksimumu vai minimumu apkārtnē. Vēl viena ranga algoritmu īpašība ir lokāla pielāgošanās apstrādātā attēla īpašībām un to izmantošanas iespēja ne tikai izlīdzināšanai un attīrīšanai no trokšņiem, bet arī iezīmju iegūšanai automātiskās attēla atpazīšanas laikā.

Attēlu apstrādē plaši tiek izmantotas viendimensiju signālu apstrādes metodes, ja iespējams tos vispārināt uz daudzdimensionāliem signāliem. Tajā pašā laikā jāņem vērā, ka matemātiskās metodes daudzdimensiju sistēmu aprakstīšanai nav pilnīgas. Daudzdimensiju sistēmām ir liels skaits brīvības pakāpju, un to dizains iegūst elastību, kas nav raksturīga viendimensiju sistēmām. Tajā pašā laikā daudzdimensiju polinomi nesadalās primārajos faktoros, kas sarežģī daudzdimensiju sistēmu analīzi un sintēzi.

17.1. Pamatjēdzieni

Attēlu grafiskais attēlojums. Lai attēlotu grafisko informāciju divdimensiju plaknē (monitora ekrānā), tiek izmantotas divas pieejas: rastra un vektora.

Vektoru pieejā grafiskā informācija tiek aprakstīta kā abstraktu ģeometrisku objektu kopums - līnijas, segmenti, līknes, taisnstūri utt. Vektoru aprakstam tiek pieņemtas a priori zināšanas par attēla struktūru.

Rastra grafika darbojas ar patvaļīgiem attēliem rastru veidā. Rastrs ir attēla apraksts plaknē, sadalot (diskretizējot) to identiskos elementos parastajā režģī un katram elementam piešķirot savu krāsu un citus atribūtus. Vienkāršākais rastrs ir taisnstūrveida, visekonomiskākais attēla pārraides paraugu skaita ziņā ir sešstūrains. No matemātiskā viedokļa rastrs ir gabalos konstants tuvinājums nepārtrauktas attēla funkcijas plaknē.

Rastra elementu sauc par pikseļu. Pikseļu standarta identifikācija:


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

kur A (i, j) Ì R2 - pikseļu laukums, C (i, j) Î C - pikseļa atribūts (parasti krāsa). Visbiežāk tiek izmantoti divu veidu atribūti:

C (i, j) = I (i, j) - pikseļu intensitāte (spilgtums);

C (i, j) = (R (i, j), G (i, j), B (i, j)) - krāsu atribūti RGB krāsu modelī.

Matricas formā:

Mij = (Aij, Cij).

Diskretizējot nepārtrauktus attēlus, Aij vērtības var definēt divos veidos: vai nu kā punktu Aij = (i, j) vērtības, kuriem ir definēti atribūti Cij, vai kā vērtības kvadrāti Aij = (i, i + 1) × (j, j + 1) vai jebkurā citā formā, nosakot Cij pēc vidējām vērtībām šajā formā (17.1.1. att.).

Praksē, kā likums, X un Y ir ierobežotas kvadrātveida vai taisnstūra rastra nenegatīvu veselu skaitļu kopas ar rastra platuma un augstuma malu attiecību, kas ir uzrakstīta formā, piemēram, "4 : 3"

Krāsu attēlojums datorgrafikā. Krāsu jēdziens ir balstīts uz cilvēka acu uztveri par elektromagnētiskajiem viļņiem noteiktā frekvenču diapazonā. Dienas gaismai, ko mēs uztveram, ir viļņu garums λ no 400 nm (violets) līdz 700 nm (sarkans). Gaismas plūsmas apraksts var būt tās spektrālā funkcija I (λ). Gaismu sauc par monohromatisku, ja tās spektram ir tikai viens noteikts viļņa garums.

Uz tīklenes ir divu veidu receptori: stieņi un konusi. Stieņu spektrālā jutība (17.1.2. att.) ir tieši proporcionāla krītošās gaismas spilgtumam. Konusi ir sadalīti trīs veidos, no kuriem katram ir noteikta jutība ierobežotos diapazonos ar maksimumu sarkanai, zaļai un zilai krāsai, un tie strauji zaudē savu jutību tumsā. Acu jutība pret zilo krāsu ir ievērojami zemāka nekā pārējām divām. Svarīga cilvēka gaismas uztveres īpašība ir linearitāte, kad tiek apvienotas krāsas ar dažādu viļņu garumu.

RGB krāsu modelis (sarkans, zaļš, zils - sarkans, zaļš, zils) datorgrafikā pašlaik ir visizplatītākais. Šajā modelī spektrālā funkcija ir attēlota kā jutības līkņu summa katram konusu veidam ar nenegatīviem svara koeficientiem (normalizēti no 0 līdz 1), kas apzīmēti kā R, G un B. Modelis ir raksturots ar aditivitātes īpašību jaunu krāsu iegūšanai. Piemēram, spektrālo funkciju kodējums:

Melns: fmelns = 0, (R, G, B) = (0,0,0);

Violeta fvioleta = fred + fblue, (R, G, B) = (1,0,1);

Balts fwhite = fred + fgreen + fblue, (R, G, B) = (1,1,1).

RGB modeļa trīsdimensiju krāsu telpa ir parādīta attēlā. 17.1.3. Receptoru gaismas uztveres īpatnību dēļ šajā modelī nav attēlojamas visas cilvēkiem redzamās krāsas. Tomēr atveidojamo krāsu daļa ir daudz lielāka nekā daļa, kas nav pārstāvēta šajā modelī.

CIE XYZ krāsu sistēma. Starptautisko krāsu attēlojuma standartu CIE (CIE - Commission Internationale de l "Eclairage) 1931. gadā pieņēma Starptautiskā apgaismojuma komisija. Tas nosaka trīs pamatfunkcijas ρX (λ), ρY (λ), ρZ (λ), atkarībā no kuru viļņu garuma lineārās kombinācijas ar nenegatīviem koeficientiem (X, Y un Z) rada visas cilvēkam redzamās krāsas. Šīs funkcijas ņem vērā acs receptoru relatīvo gaismas intensitātes uztveri. Trīsdimensiju telpā CIE krāsu sistēma veido konusu pirmajā kvadrantā un tiek izmantota augstas kvalitātes krāsu attēlu attēlošanai.

17.2. Bitkartes ģeometriskās transformācijas

Transformācijas jomas un posmi. Attēlus var iedalīt faktūrā un detaļās. Tekstūras attēlos visi paraugi (elementi) nes informāciju (attēls TV ekrānā). Detalizēts attēls ir attēls, kurā var izcelt traucējošos objektus, fonu un noderīgus objektus.

Attēlu apstrādei datoros ir trīs galvenās algoritmu grupas:

1. Primārā (iepriekšējā) attēla apstrāde atjaunošanas nolūkos, attīrīšana no nejaušiem trokšņiem, kvalitātes uzlabošana, optisko sistēmu ģeometrisko deformāciju (defokusēšana, aberācijas u.c.) korekcija.

2. Attēlu apraksts, rakstu atpazīšana. To veic attēla detaļu parametru noteikšanai un ietver: apgaismojuma un krāsas ziņā vienotu attēla laukumu atrašanu, attēla formas pazīmju izcelšanu, objektu īpašo punktu koordinātu noteikšanu u.c.

3. Efektīva kodēšana, lai samazinātu pārraides un uzglabāšanas apjomu.

Lielākā daļa priekšapstrādes metožu ir balstītas uz lineāro telpas invariantu (LPI) filtru izmantošanu. Lineārie algoritmi tiek veikti, izmantojot viendimensiju FIR un IIR filtru divdimensiju analogus. Tos var izmantot, piemēram, ieviešot filtrus, lai samazinātu attēlu troksni.

FIR filtri tiek realizēti, izmantojot konvolūcijas metodi. 2D FIR filtru priekšrocība ir skaidrība, vienkāršība un absolūta stabilitāte. IIR filtri tiek realizēti, izmantojot atšķirību vienādojumus un z-transformācijas. Tie ir ātrāki par FIR filtriem, taču var būt nestabili. Divdimensiju IIR filtru sintēze atšķiras no viendimensiju filtru sintēzes, jo divdimensiju funkcijai polus nav iespējams atlasīt nepārprotamā formā.

Var būt nepieciešamas arī nelineāras metodes, lai atjaunotu attēlus un uzlabotu to kvalitāti. Tātad, piemēram, lai slāpētu troksni un vienlaikus saglabātu attēlu kontūras daļu, ir jāizmanto nelineāri vai lineāri telpiski neinvarianti (LPNI) filtri, kurus realizē rangu algoritmi. Visi ranga nelineārie filtri ir balstīti uz ātriem algoritmiem vietējo histogrammu aprēķināšanai.

Viena no šīm metodēm ir vidējā filtrēšana. Vidējo filtru izmantošana ir efektīva dažu veidu trokšņu un periodisku traucējumu slāpēšanai, vienlaikus neizkropļojot signālu, piemēram, lai slāpētu trokšņu lēcienus, tostarp līnijas pārtraukumus. Metodi var izmantot arī ar atpazīšanu saistītu problēmu risināšanai, piemēram, lai izceltu plānas līnijas un mazus izolētus objektus.

Algoritmi attēlu aprakstīšanai un modeļu atpazīšanai parasti ir nelineāri un heiristiski. Objektu pazīmes parasti ir objekta attēla laukums, attēla kontūras perimetrs, laukuma attiecība pret attēla perimetra kvadrātu. Objekta formu var raksturot ar apļa rādiusu, kas ierakstīts attēlā vai aprakstīts ap objekta attēlu, minimālā un maksimālā rādiusa vektora garumu no attēla “masas centra”.

Paraugu ņemšana. Attēlu transformācijas datorā un apstrādāto datu uzglabāšana tiek veiktas diskrētā formā. Iztveršanu izmanto, lai iegūtu diskrētu attēlojumu no nepārtrauktiem reālās pasaules analogajiem attēliem. Praksē to veic ievades ierīces (digitālā kamera, skeneris vai citas). Lai vizuāli uztvertu apstrādātos attēlus izvadierīcēs (displejs, ploteris utt.), analogais attēls tiek rekonstruēts atbilstoši tā diskretizētajam attēlojumam.

Vienkāršākajā melnbalto attēlu gadījumā mums ir divdimensiju masīvs sa (x, y). Krāsu attēliem RGB modelī, ņemot vērā aditivitātes īpašību, pievienojot krāsas, katru R, G un B slāni var arī uzskatīt un apstrādāt kā divdimensiju masīvu ar sekojošu rezultātu summēšanu.

No viendimensionālās periodiskās izlases vispārināšanas līdz divdimensiju gadījuma metodēm vienkāršākā ir periodiska iztveršana taisnstūra koordinātēs:

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

kur Dx un Dy ir divdimensiju nepārtraukta signāla sa (x, y) horizontālie un vertikālie paraugu ņemšanas intervāli ar nepārtrauktām x un y koordinātām. Zemāk Dx un Dy vērtības, tāpat kā viendimensijas gadījumā, ir vienādas ar 1.

Divdimensiju signāla paraugu ņemšana arī noved pie tā spektra periodizācijas un otrādi. Diskrētā signāla koordinātu un frekvenču attēlojuma informācijas ekvivalences nosacījums tiek saglabāts arī ar vienādu iztveršanas punktu skaitu galvenajos signālu diapazonos. Taisnstūrveida paraugu ņemšanai tiešās un apgrieztās Furjē transformācijas nosaka ar izteiksmēm:

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 collas)

Rīsi. 17.2.1. Spektra periodizācija.

Šīs izteiksmes parāda, ka divdimensiju DFT virs taisnstūra datu izlases rastra var aprēķināt, izmantojot viendimensiju secīgus DFT. Otrās izteiksmju summas (17.2.1 ") un (17.2.2") ir funkciju s (n, m) un S (k, l) sadaļu viendimensijas DFT pa taisnēm n un k. , un pirmie ir aprēķināto funkciju viendimensijas DFT sadaļās pa m un l. Citiem vārdiem sakot, sākotnējās vērtību s (n, m) un S (k, l) matricas vispirms tiek pārrēķinātas starpmatricās ar DFT pa rindām (vai kolonnām) un starpposma matricās - galīgajās matricās ar DFT pēc kolonnās (vai attiecīgi pa rindām).

Lai periodiski atkārtojas spektrs (17.2.1. att.), ko izraisa analogā signāla iztveršana ar frekvenci Fx = 1 / Dx un Fy = 1 / Dy, nemaina spektru galvenajā frekvenču diapazonā. (attiecībā uz oriģinālā analogā signāla spektru) ir nepieciešams un ir pietiekami, lai maksimālās frekvences komponentes fmax analogā signāla spektrā gan rindās, gan kolonnās nepārsniegtu Nyquist frekvenci (fmax. x). £ fN = Fx / 2, fmaks. y £ fM = Fy / 2). Tas nozīmē, ka signāla iztveršanas frekvencei ir jābūt vismaz divas reizes lielākai par maksimālo frekvences komponentu signāla spektrā:

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

kas nodrošina, ka spektrālās funkcijas sasniedz nulles vērtības galvenā spektra diapazona galos.

Divdimensiju signāla rekonstrukcijas interpolācijas sērija. Ja nepārtrauktais signāls sa (x, y) ir spektra ierobežots signāls un izlases periodi ir izvēlēti pietiekami mazi un blakus esošo periodu spektri nepārklājas:

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

tad, tāpat kā viendimensijas gadījumā, signālu sa (x, y) var rekonstruēt no diskrēta signāla, izmantojot Koteļņikova-Šenona sērijas divdimensiju analogu:

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

Attēlu frekvences kropļojumi un to novēršana. Var ņemt arī neierobežota spektra signālu, taču šajā gadījumā blakus periodos notiek aliasing, savukārt augstās frekvences, kas ir augstākas par Nyquist frekvencēm, tiks "maskētas", tāpat kā viendimensijas gadījumā, zem signāla zemajām frekvencēm. galvenais periods. "Atspoguļošanas" efekts no perioda robežām sniedz vēl sarežģītāku ainu dažādās koordinātēs atspoguļoto frekvenču traucējumu dēļ. Līdzīgs efekts, kas pazīstams kā aizstājvārds, radīsies arī tad, ja attēli ir nepietiekami atlasīti. Šo efektu var īpaši skaidri novērot uz krasām kontrastējošām spilgtuma izmaiņām.

Lai cīnītos pret šādām parādībām, tiek izmantota iepriekšēja filtrēšana (antialiasing) — analogā attēla sākotnēja konvolūcija ar filtra svēršanas funkciju, kas nogriež augstfrekvences komponentus, kas var izraisīt aliasing. Divdimensiju gadījumā filtrēšana ir aprakstīta šādi:

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

Jāņem vērā, ka analogie attēli pastāv tikai optiskajā diapazonā, piemēram, gaismas displeja veidā uz ekrāna, fotopapīra vai fotofilmas, bet nevar pastāvēt datora atmiņā. Tāpēc priekšfiltrēšanas fiziskā veiktspēja ir iespējama tikai reģistrējot attēlu, to defokusējot, kas, kā likums, netiek pielietots. Primārā informācija vienmēr ir jāreģistrē ar maksimālu pilnīgumu un precizitāti, un primārās informācijas attīrīšana no nevajadzīgām detaļām un dublēšanas ir turpmākas datu apstrādes jautājums. Tāpēc attiecībā uz 17.2.5. vienādojumu divdimensiju priekšfiltrēšana tās praktiskajā īstenošanā var būt tikai to attēlu filtrēšana, kas atlasīti ar lielu rezervi galvenajā frekvenču diapazonā (ar pārmērīgu izšķirtspēju), un to parasti izmanto, pārtverot līdz lielākam solim, piemēram, saspiežot attēlus. Iepriekšējo filtrēšanu var iebūvēt arī attēlveidošanas algoritmos.

attēlā. 3 un tālāk, 17.2.1. tabulā ir parādīti visizplatītāko viendimensijas anti-aliasing filtru piemēri. Tos var veikt analogo filtru veidā, un tos var izmantot, piemēram, pārraidot televīzijas attēlu līnijas analogā formā pa radio kanāliem (horizontālā antialiasing). Principā līdzīgu darbību var veikt ar kolonnām (dubults - attēls), un pēc attēla summēšanas tiks veikta pilna antialiasing operācija, taču šī metode vairāk pieder speciālo zinātnisko pētījumu jomai.

17.2.1. tabula.

Svara pamatfunkcijas

Laika logs

Svara funkcija

Furjē transformācija

Dabisks (P)

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

P (w) = 2t sinc

Bārtleta (D)

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

Heninga, Ganna

p (t) = 0,5

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

Hammings

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. logs)

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

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

Laplass-Gauss

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

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

Viendimensiju filtru f1 (x) divdimensiju analogi ir konstruēti divos simetrijas variantos: vai kā rādiusa funkcija:

f2 (x, y) = f1 (),

vai kā darbs:

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

Pirmais variants ir pareizāks, bet otrajam ir atdalāmības īpašība, t.i., divdimensiju konvolūciju var veikt ar divām viendimensiju līknēm secīgi pa rindām ar f1 (x) un pa kolonnām ar f1 (y).

Attēlu atkārtota atlase vai resampling ir ciparu signāla paraugu ņemšanas ātruma izmaiņas. Digitālajiem attēliem tas nozīmē attēla izmēra maiņu.

Ir dažādi algoritmi attēlu atkārtotai paraugu ņemšanai. Piemēram, lai palielinātu attēlu 2 reizes, izmantojot bilineārās interpolācijas metodi, starpkolonnas un rindas iegūst, lineāri interpolējot blakus esošo kolonnu un rindu vērtības. Katru jaunā attēla punktu var iegūt kā lielāka punktu skaita svērtu summu sākotnējā attēlā (bikubiskā un cita veida interpolācija). Augstākās kvalitātes resampling tiek iegūta, izmantojot algoritmus, kas ņem vērā ne tikai signāla laiku, bet arī frekvences domēnu.

Apsveriet atkārtotas paraugu ņemšanas algoritmu ar maksimālu attēla frekvences informācijas saglabāšanu. Apskatīsim algoritma darbību uz viendimensijas signāliem, jo ​​divdimensiju attēlu vispirms var izstiept vai saspiest horizontāli (pa rindām) un pēc tam vertikāli (pa kolonnām), un var veikt divdimensiju attēla atkārtotu paraugu ņemšanu. samazināts līdz viendimensijas signālu atkārtotai paraugu ņemšanai.

Pieņemsim, ka mums ir viendimensijas signāls (17.2.4. att.), kas norādīts 0-T intervālā un atlasīts ar soli Dt = 1 (N intervāli). Ir nepieciešams "izstiept" signālu m reizes. Attēlā redzamais signāla spektrs ir aprēķināts ar ātro Furjē transformāciju (FFT, spektra paraugu skaits ir vienāds ar signāla paraugu skaitu) un tiek norādīts galvenajā FFT diapazonā (0-2p, Nyquist frekvence wN = p / Dt = p, vai 0,5N atbilstoši spektra paraugu numerācijai ar soli gar spektru Df = 1 / T vai Dw = 2p / T). Lai veiktu stiepšanos, ir jāveic 2 soļi.

Pirmais solis ir interpolācija ar nullēm, kas palielina signāla garumu par m reizes. (17.2.5. att.). Nepieciešams reizināt visus sākotnējā signāla paraugus ar m un pēc tam pēc katra signāla parauga ievietot m-1 nulles vērtību. 0-T intervālā, kura vērtība paliek nemainīga, tagad atrodas m reizes vairāk paraugu ņemšanas intervālu (mN), un jaunais paraugu ņemšanas solis būs vienāds ar Dx = Dt / m. Attiecīgi jaunā Nyquist frekvence šim signālam ir mp / Dt = mp. Bet spektra soļa fiziskais lielums frekvences vienībās ir apgriezts signāla iestatīšanas intervāla fiziskajai vērtībai (Df = 1 / T), un tāpēc FFT no signāla mN punktiem aprēķinās mN spektra punktus galvenais FFT diapazons 0-2pm ar sākotnējā signāla spektra soli, kurā būs oriģinālā signāla spektra m-periodi (viena galvenā un m-1 puse).

Otrais solis ir filtrēt spektra sānjoslas, izmantojot zemas caurlaidības filtru laika vai spektra domēnā. attēlā. 17.2.6., tika notīrīts spektrs un veikta apgrieztā Furjē transformācija, kā rezultātā tika iegūts m reižu garāks signāls par sākotnējo, pilnībā saglabājot visu frekvenču informāciju.

Pēc līdzīga principa signāla saspiešanas (decimācijas) algoritmu var izveidot ar koeficientu n, savukārt soļu secība ir apgriezta. Kad signāls ir saspiests, signāla paraugu ņemšanas solis tiek palielināts un attiecīgi samazināta Nyquist frekvence, savukārt nogrieztās augstās frekvences (troksnis un nenozīmīgas signāla spektra augstfrekvences daļas) tiks atspoguļotas no galvenās robežas. diapazonu un pievieno galvenajai informācijai, radot kropļojumus. Lai novērstu šo parādību, vispirms signāls tiek filtrēts ar zemas caurlaidības frekvenci, kas ir vienāda ar jauno Nyquist frekvenci (antialiasing), un tikai pēc tam signāls tiek samazināts ar decimāciju.

Veicot atkārtotu iztveršanu tikai laika domēnā, stiepšanās un saspiešanas algoritmi parasti tiek apvienoti vienā secīgā procesā, norādot izlases soļa izmaiņas attiecības m / n formā, kas ļauj iestatīt veselu skaitli. m un n vērtības ar paraugu ņemšanas soļa izmaiņu daļējām vērtībām. Tas ievērojami vienkāršo algoritmus un palielina viņu darba efektivitāti un kvalitāti. Piemēram, kad signāls tiek izstiepts 1,5 reizes pie m / n = 3/2, signāls vispirms tiek izstiepts 3 reizes (vienkārša un vienmērīga nulles pievienošana visiem paraugiem, pēc tam tiek veikta zemas caurlaidības filtrēšana, pēc kuras signāls tiek izstiepts tiek samazināts divas reizes. Anti-aliasing filtrs nav nepieciešams, jo tā robežfrekvenci sedz pirmā zemfrekvences filtra frekvence.Kad tiek veikta reversās saspiešanas darbība (piemēram, m / n = 2/3), tikai tādā pašā veidā tiek izmantots anti-aliasing filtrs.

17.3. attēlu filtrēšana

Attēlu filtrēšana tiek saprasta kā darbība, kuras rezultātā tiek iegūts tāda paša izmēra attēls, kas iegūts no oriģinālā saskaņā ar noteiktiem noteikumiem. Parasti katra iegūtā attēla pikseļa intensitāti (krāsu) nosaka to pikseļu intensitāte (krāsas), kas oriģinālajā attēlā atrodas kādā no tā tuvumā.

Filtrēšanas noteikumi var būt ļoti dažādi. Attēlu filtrēšana ir viena no vissvarīgākajām datorredzes, modeļu atpazīšanas un attēlu apstrādes darbībām. Lielākās daļas attēlu apstrādes metožu darbs sākas ar vienu vai otru avota attēlu filtrēšanu.

Līniju filtri ir ļoti vienkāršs matemātisks apraksts. Mēs pieņemsim, ka ir dots sākotnējais pelēktoņu attēls A, un apzīmēsim tā pikseļu intensitāti A (x, y). Lineāro filtru nosaka reālās vērtības funkcija h (filtra kodols), kas definēta uz rastra. Pati filtrēšana tiek veikta, izmantojot diskrētās konvolūcijas (svērtās summēšanas) operāciju:

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

Rezultāts ir attēls B. Parasti filtra kodols nav nulle tikai kādā punkta N apkārtnē (0, 0). Ārpus šīs apkārtnes h (i, j) ir nulle vai ļoti tuvu tai, un to var neievērot. Summēšana tiek veikta virs (i, j) Î N, un katra pikseļa B (x, y) vērtību nosaka attēla A pikseļi, kas atrodas logā N, centrēti punktā (x, y). ) (apzīmējums - kopa N (x, y) ). Filtra kodolu, kas definēts taisnstūrveida apkaimē N, var skatīt kā m-by-n matricu, kur malu garumi ir nepāra skaitļi. Norādot kodolu kā matricu, tam jābūt centrētam. Ja pikselis (x, y) atrodas attēla malu tuvumā, tad koordinātas A (x-i, y-j) noteiktiem (i, j) var atbilst neesošiem pikseļiem A ārpus attēla. Šo problēmu var atrisināt vairākos veidos.

Nefiltrējiet šos pikseļus, apgriežot attēla B malās vai to vērtībām piemērojot attēla A sākotnējās vērtības.

Neiekļaujiet trūkstošo pikseļu summācijā, vienmērīgi sadalot tā svaru h (i, j) starp citiem pikseļiem apkārtnē N (x, y).

Pārdefinējiet pikseļu vērtības ārpus attēla robežām, izmantojot ekstrapolāciju.

Pārdefinējiet pikseļu vērtības ārpus attēla robežām, izmantojot spoguļattēla turpinājumu.

Metodes izvēle tiek veikta, ņemot vērā specifiskās filtra un attēla īpašības.

Izlīdzinošie filtri. Vienkāršākais taisnstūra izlīdzināšanas filtrs ar rādiusu r tiek norādīts, izmantojot matricu ar izmēru (2r + 1) × (2r + 1), kuras visas vērtības ir vienādas ar 1 / (2r + 1) 2, un vērtības ir vienādas ar vienu. Tas ir zemfrekvences viendimensijas mainīgā vidējā U veida filtra divdimensiju analogs. Filtrējot ar šādu kodolu, pikseļa vērtība tiek aizstāta ar vidējo pikseļu vērtību kvadrātā ar malu 2r + 1. 3 × 3 filtra maskas piemērs:

.

Viens no filtru pielietojumiem ir trokšņu samazināšana. Troksnis mainās neatkarīgi no pikseļa uz pikseļu, un ar nosacījumu, ka trokšņa vērtības matemātiskā sagaidāmā vērtība ir vienāda ar nulli, blakus esošo pikseļu troksnis summēšanas laikā kompensēs viens otru. Jo lielāks ir filtrēšanas logs, jo mazāka būs trokšņa vidējā intensitāte, taču tas arī radīs atbilstošu attēla nozīmīgu detaļu izplūšanu. Balta punkta attēls uz melna fona filtrēšanas laikā (reakcija uz vienu impulsu) būs vienmērīgi pelēks kvadrāts.

Trokšņu samazināšanai, izmantojot taisnstūrveida filtru, ir būtisks trūkums: visiem pikseļiem filtra maskā jebkurā attālumā no apstrādātā ir tāda pati ietekme uz rezultātu. Nedaudz labāks rezultāts tiek iegūts, pārveidojot filtru, palielinot centra punkta svaru:

.

Efektīvāku trokšņu samazināšanu var veikt, ja pikseļu ietekme uz rezultātu samazināsies, palielinoties attālumam no apstrādātā. Šis rekvizīts piemīt Gausa filtram ar kodolu: h (i, j) = (1 / 2ps2) exp (- (i2 + j2) / 2s2). Gausa filtram ir bezgalīga izmēra kodols, kas atšķiras no nulles. Tomēr filtra kodola vērtība ļoti ātri samazinās līdz n), un tāpēc praksē var aprobežoties ar konvolūciju ar nelielu logu ap (0, 0), piemēram, ņemot loga rādiusu, kas vienāds ar 3σ.

Gausa filtrēšana ir arī antialiasing. Tomēr atšķirībā no taisnstūra filtra punkta attēls ar Gausa filtrēšanu būs simetrisks izplūdis plankums ar spilgtuma samazināšanos no vidus līdz malām. Attēlu izplūšanas pakāpi nosaka parametrs σ.

Kontrasta pieaugošie filtri ... Lai gan anti-aliasing filtri samazina attēla vietējo kontrastu, to aizmiglojot, kontrastu uzlabojošie filtri rada pretēju efektu un būtībā ir augstas telpiskās frekvences filtri. Kontrastu uzlabojošā filtra kodolam punktā (0, 0) ir vērtība, kas ir lielāka par 1, un vērtību kopējā summa ir vienāda ar 1. Piemēram, kontrastu uzlabojošie filtri ir filtri ar kodolu, kas norādīts ar matricām:

. .

Filtra pielietošanas piemērs ir parādīts attēlā. 17.3.1. Kontrasta pastiprināšanas efekts tiek panākts ar to, ka filtrs uzsver atšķirību starp blakus esošo pikseļu intensitātēm, noņemot šīs intensitātes vienu no otras. Šis efekts būs spēcīgāks, jo lielāka būs kodola centrālā termina vērtība. Lineārā kontrastu uzlabojošā filtrēšanas raksturīgs artefakts ir pamanāmi gaiši un mazāk pamanāmi tumši oreoli ap apmalēm.

Atšķirību filtri Vai lineārie filtri ir definēti ar diferenciālo operatoru diskrētiem tuvinājumiem (ar galīgo atšķirību metodi). Šie filtri spēlē nozīmīgu lomu daudzās lietojumprogrammās, piemēram, robežu atrašanas uzdevumos attēlā.

Vienkāršākais diferenciāļa operators ņem atvasinājumu attiecībā pret x-koordinātu d / dx, kas ir definēta nepārtrauktām funkcijām. Bieži sastopami līdzīgu operatoru varianti diskrētiem attēliem ir Prewitt un Sobel filtri:

. .

Filtri, kas tuvina atvasinājuma operatoru attiecībā pret y-koordinātu d / dy, tiek iegūti, transponējot matricas.

Vienkāršākais algoritms gradienta normas aprēķināšanai no trim blakus esošajiem punktiem:

G (x, y) = .

Tiek izmantota arī vienkāršota aprēķina formula:

Gradienta normas aprēķins no četriem blakus punktiem (Roberts operators):

Sobela algoritms centra punkta tuvumā izmanto astoņus spilgtuma rādījumus:

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

Gxx, y = -,

Gyx, y = -.

Līdz ar precīzāku gradienta normas noteikšanu Sobela algoritms ļauj arī noteikt gradienta vektora virzienu attēla analīzes plaknē leņķa j veidā starp gradienta vektoru un matricas rindu virzienu:

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

Atšķirībā no antialiasing un kontrasta uzlabošanas filtriem, kas nemaina attēla vidējo intensitāti, atšķirības operatoru izmantošanas rezultātā parasti tiek iegūts attēls ar vidējo pikseļu vērtību, kas ir tuvu nullei. Sākotnējā attēla vertikālās malas (robežas) atbilst pikseļiem ar lielām absolūtajām vērtībām iegūtajā attēlā. Tāpēc delta filtrus sauc arī par robežu atlases filtriem.

Līdzīgi iepriekš minētajiem filtriem, izmantojot galīgo atšķirību metodi, varat izveidot filtrus citiem diferenciāliem operatoriem. Jo īpaši Laplasa diferenciālo operatoru (Laplacian) D = 𝝏2 / 𝝏x2 + 𝝏2 / 𝝏y2, kas ir svarīgs daudzām lietojumprogrammām, diskrētiem attēliem var tuvināt ar filtru ar matricu (viena no iespējām):

.

Kā redzams attēlā. 17.3.2., diskrētā Laplasa pielietošanas rezultātā lielas absolūtās vērtības atbilst gan vertikālajām, gan horizontālajām spilgtuma atšķirībām. Tādējādi filtrs ir filtrs, kas atrod jebkuras orientācijas robežas. Robežu atrašana attēlā var tikt veikta, pielietojot šo filtru un ņemot visus pikseļus, kuru lielums pārsniedz noteiktu slieksni.

Tomēr šim algoritmam ir ievērojami trūkumi. Galvenā no tām ir nenoteiktība sliekšņa vērtības izvēlē. Dažādām attēla daļām pieņemams rezultāts parasti tiek iegūts pie ievērojami atšķirīgām sliekšņa vērtībām. Turklāt atšķirību filtri ir ļoti jutīgi pret attēla trokšņiem.

Divdimensiju cikliskā konvolūcija. Kas attiecas uz viendimensiju signāliem, tad telpisko frekvenču jomā var veikt divdimensiju konvolūciju, izmantojot ātro Furjē transformācijas algoritmus un reizinot attēla un filtra kodola divdimensiju spektrus. Tas ir arī ciklisks un parasti tiek veikts bīdāmā versijā. Ņemot vērā cikliskumu, lai aprēķinātu kodola spektra konstanto modeli, kodola filtra maskas izmēri tiek dubultoti gar asīm un polsterēti ar nullēm, un tie paši maskas izmēri tiek izmantoti, lai atlasītu logu, kas slīd pār attēlu. kurā tiek veikta FFT. FIR filtra ieviešana ar FFT ir īpaši efektīva, ja filtram ir liels atskaites laukums.

Nelineāri filtri ... Digitālajā attēlu apstrādē plaši tiek izmantoti nelineāri algoritmi, kuru pamatā ir rangu statistika, lai atgūtu dažādu trokšņu modeļu bojātus attēlus. Tie ļauj izvairīties no papildu attēla kropļojumiem, novēršot troksni, kā arī ievērojami uzlabo filtrēšanas rezultātus attēliem ar augstu trokšņa pakāpi.

Ieviesīsim attēla elementa A (x, y) M-apkaimes jēdzienu, kas ir centrālais šajā apkaimē. Vienkāršākajā gadījumā M apkārtnē ir N pikseļi - punkti, kas iekrīt filtra maskā, ieskaitot (vai neietverot) centrālo. Šo N elementu vērtības var sakārtot variāciju sērijā V (r), sakārtot augošā (vai dilstošā) secībā, un var aprēķināt noteiktus šīs sērijas momentus, piemēram, spilgtuma vidējo vērtību mN. un dispersija dN. Filtra, kas aizstāj centrālo paraugu, izejas vērtības aprēķinu veic, izmantojot formulu:

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

Koeficienta a = vērtība ir saistīta ar noteiktu saistību ar skaitļu statistiku filtra logā, piemēram:

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

kur dS ir trokšņa dispersija attēlā kopumā vai S-apkaimē S> M un MÎS, k ir S-apkaimes dispersijas ticamības konstante. Kā izriet no šīs formulas, ja k = 1 un dN notiek "dS, a" 0,5, un vērtība B (x, y) = (A (x, y) + mN) / 2, tas ir, summējiet vienādi no centrālās atsauces vērtībām un tās M apkārtnes pikseļu vidējās vērtības. Palielinoties dN vērtībām, ieguldījums centrālās atsauces vērtības rezultātā palielinās, samazinoties, mN vērtība. M apkaimes vidējo vērtību ieguldījuma svaru var mainīt ar koeficienta k vērtību.

Statistiskās funkcijas izvēle un koeficienta a atkarības raksturs no tās var būt diezgan daudzveidīgs (piemēram, pēc M-apkaimes paraugu atšķirību dispersijas ar centrālo izlasi), un ir atkarīgs gan par filtra diafragmas lielumu un attēlu un trokšņa raksturu. Būtībā koeficienta a vērtībai būtu jānorāda centrālās atskaites bojājuma pakāpe un attiecīgi paraugu aizgūšanas funkcija no M-apkaimes, lai to labotu.

Vienkāršākie un izplatītākie nelineāro filtru veidi attēlu apstrādei ir sliekšņa un vidējie filtri.

Sliekšņa filtrēšana ir iestatīts, piemēram, šādi:

B (x, y) =

Lielums lpp ir filtrēšanas slieksnis. Ja filtra centra punkta vērtība par sliekšņa vērtību pārsniedz paraugu vidējo vērtību mN tā M apkārtnē, tad to aizstāj ar vidējo vērtību. Sliekšņa vērtība var būt nemainīga vai funkcionāli atkarīga no centra punkta vērtības.

Vidējā filtrēšana ir definēts šādi:

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

tas ir, filtrēšanas rezultāts ir apkārtnes pikseļu vidējā vērtība, kuru formu nosaka filtra maska. Vidējā filtrēšana var efektīvi noņemt attēla troksni, kas neatkarīgi ietekmē atsevišķus pikseļus. Piemēram, šādi trokšņi ir “salauzti” pikseļi digitālajā fotogrāfijā, “sniega” troksnis, kad daži pikseļi tiek aizstāti ar pikseļiem ar maksimālo intensitāti utt. Vidējās filtrēšanas priekšrocība ir tāda, ka “karsts” pikselis uz tumša fona. tiks nomainīts tumšs, nevis "izsmērēts" apkārtnē.

Vidējai filtrēšanai ir izteikta selektivitāte attiecībā uz masīva elementiem, kas ir filtra apertūras skaitļu virknes nemonotons komponents. Tajā pašā laikā vidējais filtrs atstāj nemainīgu secības monotonisko komponentu. Pateicoties šai funkcijai, vidējie filtri ar optimāli izvēlētu diafragmu saglabā objektu asas malas bez kropļojumiem, novēršot nekorelētu vai vāji korelētu troksni un maza izmēra detaļas.

Ekstrēmi filtri tiek noteiktas saskaņā ar noteikumiem:

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

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

tas ir, filtra rezultāts ir minimālā un maksimālā pikseļu vērtība filtra maskā. Šādi filtri parasti tiek izmantoti binārajiem attēliem.

17.4. ATTĒLA KOMPRESIJA

Tipisks attēls ar izšķirtspēju 3000 × 2000 ar 24 bitiem uz pikseļu krāsai ir 17 megabaiti. Profesionālām ierīcēm iegūtā attēla rastra izmērs var būt daudz lielāks, krāsu dziļums ir līdz 48 bitiem uz pikseļu, bet viena attēla izmērs var būt lielāks par 200 megabaitiem. Tāpēc attēlu saspiešanas algoritmi ir ļoti svarīgi, lai samazinātu attēlu attēlojošo datu apjomu.

Ir divas galvenās algoritmu klases:

1. Bezzudumu kompresija, ja ir tāds apgriezts algoritms A-1, ka jebkuram h attēlam A [h] = h1 mums ir A-1 = h. Bezzudumu saspiešana tiek izmantota tādos grafisko attēlu formātos kā: GIF, PCX, PNG, TGA, TIFF, un tiek izmantota īpaši vērtīgas primārās informācijas (medicīnisko attēlu, gaisa un kosmosa attēlu u.c.) apstrādē, ja rodas pat vismazākie kropļojumi. nevēlama

2. Saspiešana ar zudumu (lossy kompresija), ja tā nenodrošina iespēju precīzi atjaunot sākotnējo attēlu. Algoritms aptuvenai attēla atjaunošanai, kas savienots pārī ar A, tiks apzīmēts kā A *. Pāris (A, A *) ir izvēlēts, lai nodrošinātu augstu saspiešanas pakāpi, vienlaikus saglabājot vizuālo kvalitāti. Zaudējumu saspiešana tiek izmantota attēlu formātos: JPEG, JPEG2000 utt.

Visi algoritmi un apgalvojumi attiecas gan uz attēliem, gan uz patvaļīgām sekvencēm, kuru elementiem var būt ierobežots skaits vērtību. Jāpatur prātā, ka nav ideālu algoritmu, kas saspiestu jebkuru datu kopu bez zaudējumiem.

Atkārtojuma garuma (RLE) kodēšanas algoritmi ir balstīti uz vienkāršu principu: sākotnējās secības elementu atkārtotu grupu aizstāšana ar pāri (daudzums, elements) vai tikai ar daudzumu.

Bitu līmenis. Mēs izskatīsim sākotnējos datus bitu secības līmenī, piemēram, attēlojot melnbaltu attēlu. Parasti pēc kārtas ir vairākas 0 vai 1, un jūs varat iekodēt secīgu identisku ciparu skaitu. Bet atkārtojumu skaits ir jākodē arī bitos. Var pieņemt, ka katrs atkārtojumu skaits svārstās no 0 līdz 7 (3 bitu kods), mainot vieninieku un nulles kodu secību. Piemēram, secību var salīdzināt ar skaitļiem 7 0 4, tas ir, 7 vieninieki, 0 nulles, 4 vieninieki, kamēr mums ir jauns gads - Jo garāks identisku bitu secību garums, jo lielāks efekts. Tātad secība ar 21 vieninieku, 21 nulli, 3 vieniniekiem un 7 nullēm tiek kodēta šādi: tas ir, no sākotnējās secības, kuras garums ir 51 bits, mums ir secība ar 36 bitu garumu.

Baitu līmenis. Pieņemsim, ka ieejā tiek ievadīts pelēktoņu attēls, kur pikseļu intensitātes vērtībai tiek atvēlēts 1 baits, savukārt cerība uz garu identisku bitu virkni ir ievērojami samazināta.

Mēs sadalīsim ievades straumi baitos (kods no 0 līdz 255) un kodēsim atkārtotos baitus pa pāriem (cipars, burts). Vienu baitu var atstāt nemainītu. Tātad, baiti AABBBCDAA ir kodēti (2A) (3B) (C) (D) (2A).

Tomēr šī algoritma modifikācijas reti tiek izmantotas pašas par sevi (piemēram, PCX formātā), jo sekvenču apakšklase, kurā algoritms darbojas, ir salīdzinoši šaura. Visbiežāk tos izmanto kā vienu no kompresijas cauruļvada posmiem.

Vārdnīcas algoritmi tā vietā, lai kodētu tikai vienu ievades secības elementu, tiek kodēta elementu ķēde. Šajā gadījumā, lai kodētu jaunas, tiek izmantota virkņu vārdnīca (izveidota no ievades secības).

LZ77 algoritms bija viens no pirmajiem, kas izmantoja vārdnīcu. Pēdējie N jau iekodētie secības elementi tiek izmantoti kā vārdnīca. Saspiešanas procesa laikā apakšsekvenču vārdnīca "slīd" pāri ienākošajai secībai. Elementu ķēde izejā tiek kodēta šādi: apstrādātās elementu ķēdes atbilstošās daļas pozīcija vārdnīcā - nobīde (attiecībā pret pašreizējo pozīciju), garums, pirmais elements, kas seko saskaņotajai ķēdes daļai. Sērkociņu ķēdes garumu no augšas ierobežo skaitlis n. Attiecīgi uzdevums ir atrast lielāko virkni no vārdnīcas, kas atbilst apstrādājamai secībai. Ja sakritības nav, tad tiek ierakstīta nulles nobīde, viens garums un pirmais nekodētās secības elements.

Iepriekš aprakstītā kodēšanas shēma noved pie bīdāmā loga koncepcijas, kas sastāv no divām daļām:

N-vārdnīcas garuma jau iekodētu elementu apakšsecība - meklēšanas buferis;

Garuma n apakšsekvence no elementu ķēdes, kurai tiks mēģināts atrast atbilstību, ir nākotnes buferis.

Saspiestas secības atšifrēšana ir ierakstīto kodu atšifrēšana: katrs ieraksts tiek saskaņots ar virkni no vārdnīcas un skaidri ierakstītu elementu, pēc kura vārdnīca tiek pārvietota. Vārdnīca tiek atjaunota, kad darbojas dekodēšanas algoritms.

Šis algoritms ir visas algoritmu saimes priekštecis. Tās priekšrocības ietver pienācīgu saspiešanas pakāpi diezgan lielās secībās un ātru dekompresiju. Trūkumi ietver lēnu saspiešanas ātrumu un zemāku saspiešanas pakāpi nekā alternatīviem algoritmiem.

LZW algoritms. Šī algoritma vārdnīca ir tabula, kas algoritma darbības laikā ir piepildīta ar elementu virknēm. Saspiešanas process meklē garāko ķēdi, kas jau ir ierakstīta vārdnīcā. Katru reizi, kad vārdnīcā netiek atrasta jauna elementu virkne, tā tiek pievienota vārdnīcai un tiek ierakstīts virknes kods. Teorētiski tabulas izmēram nav ierobežojumu, taču izmēra ierobežojums ļauj uzlabot saspiešanas pakāpi, jo uzkrājas nevajadzīgas (nav atrastas) ķēdes. Jo vairāk ierakstu tabulā ir, jo vairāk informācijas ir jāpiešķir, lai saglabātu kodus.

Dekodēšana sastāv no kodu tiešas atšifrēšanas, tas ir, vārdnīcas izveidošanas un atbilstošo virkņu izvadīšanas. Vārdnīca tiek inicializēta tāpat kā kodētājā. Algoritma priekšrocības ietver augstu saspiešanas pakāpi un diezgan lielu saspiešanas un dekodēšanas ātrumu.

Entropijas kodēšanas algoritmi atbilstoši katram secības elementam ievietojiet kodu, lai tā garums atbilstu elementa rašanās varbūtībai. Saspiešana notiek, aizstājot sākotnējās secības elementus, kuriem ir vienāds garums (katram elementam ir vienāds bitu skaits) ar dažāda garuma elementiem, kas ir proporcionāli varbūtības negatīvajam logaritmam, ti, elementiem, kas ir biežāk nekā pārējiem, ir īsāks koda garums.

Hafmena algoritms izmanto mainīga garuma prefiksa kodu ar īpašu īpašību: īsāki kodi nesakrīt ar garāku prefiksu (sākotnējo daļu). Šis kods ļauj kodēt viens pret vienu. Saspiešanas process sastāv no katra ievades secības elementa aizstāšanas ar tā kodu. Kodu kopas konstruēšana parasti tiek veikta, izmantojot t.s kodu koki.

Hafmena algoritms ir divu gājienu. Pirmajā attēla pārejā tiek izveidota elementu svara tabula, bet otrajā tiek veikta kodēšana. Ir fiksētās tabulas algoritma implementācijas. Bieži gadās, ka alfabēta elementu iepriekšējais varbūtības sadalījums nav zināms, jo visa secība nav pieejama uzreiz, un tiek izmantotas Hafmena algoritma adaptīvās modifikācijas.

Zaudēta attēla saspiešana. Attēlu glabāšanai nepieciešamais informācijas apjoms parasti ir liels. Klasiskie algoritmi, kas ir vispārējas nozīmes algoritmi, neņem vērā, ka saspiežamā informācija ir attēls - divdimensiju objekts, un nenodrošina pietiekamu kompresijas pakāpi.

Zaudējumu saspiešanas pamatā ir cilvēka attēla uztveres īpašības: augstākā jutība noteiktā krāsu viļņu garuma diapazonā, spēja uztvert attēlu kopumā, nepamanot mazus kropļojumus. Galvenā attēlu klase, uz kuru ir vērsti zudumu saspiešanas algoritmi, ir fotogrāfijas, attēli ar vienmērīgām krāsu pārejām.

Attēla zuduma novērtējums. Ir daudz pasākumu, lai novērtētu attēlu zudumus pēc to atkopšanas (atkodēšanas) no saspiestajiem, taču tiem visiem var izvēlēties divus attēlus tā, lai to atšķirības mērs būtu pietiekami liels, bet atšķirības būs gandrīz nemanāmas. acs. Un otrādi — jūs varat uzņemt attēlus, kas ir ļoti atšķirīgi pēc acs, bet kuriem ir neliela atšķirība.

Standarta skaitliskais zaudējumu mērījums parasti ir rekonstruētā attēla pikseļu vērtību standarta novirze (RMS) no sākotnējā attēla. Tomēr vissvarīgākais zaudējumu aplēses “mērs” ir novērotāja viedoklis. Jo mazāk atšķirību (vai labāk to neesamību) novērotājs konstatē, jo augstāka ir saspiešanas algoritma kvalitāte. Zaudējumu saspiešanas algoritmi nereti sniedz lietotājam iespēju izvēlēties "pazaudēto" datu apjomu, tas ir, tiesības izvēlēties starp saspiestā attēla kvalitāti un izmēru. Protams, jo labāka ir vizuālā kvalitāte ar lielāku kompresijas pakāpi, jo labāks ir algoritms.

Furjē transformācija. Kopumā attēlu var uzskatīt par divu mainīgo funkciju, kas definēta gala rastra punktos. Šādu funkciju kopa fiksēta ierobežota rastra punktos veido galīgo dimensiju Eiklīda telpu, un tām var pielietot diskrētu Furjē transformāciju, t.i., attēla spektrālo attēlojumu. Tas nodrošina:

Spektra koeficientu nekorelācija un neatkarība, tas ir, viena koeficienta attēlojuma precizitāte nav atkarīga no neviena cita.

- Enerģijas blīvēšana. Transformācija saglabā pamatinformāciju nelielā skaitā koeficientu. Šī īpašība ir visizteiktākā fotoreālistiskajos attēlos.

Spektrālās reprezentācijas koeficienti ir attēla telpisko frekvenču amplitūdas. Attēliem ar vienmērīgām pārejām lielākā daļa informācijas ir ietverta zemo frekvenču spektrā.

JPEG formātā izmantotais kompresijas algoritms ir balstīts uz diskrētās kosinusa Furjē transformācijas izmantošanu. Kompresijas shēma algoritmā ir konveijers, kur šī transformācija ir tikai viens no posmiem, bet viens no galvenajiem. Algoritms satur šādas pamata darbības:

1. Tulkojums YCbCr krāsu telpā. Šeit Y ir spilgtuma komponents, Cb un Cr ir krāsainības komponenti. Cilvēka acs ir jutīgāka pret spilgtumu nekā krāsu. Tāpēc svarīgāk ir saglabāt lielāku precizitāti Y pārraidē nekā Cb un Cr pārraidē.

2. Diskrētā kosinusa transformācija (DCT). Attēls ir sadalīts blokos 8 × 8. Katram blokam tiek pielietota diskrēta kosinusa transformācija (atsevišķi Y, Cb un Cr komponentiem).

3. Augstfrekvences komponentu samazināšana DCT matricās. Cilvēka acs praktiski nepamana izmaiņas augstfrekvences komponentos, tāpēc koeficientus, kas ir atbildīgi par augstām frekvencēm, var uzglabāt ar mazāku precizitāti.

4. Matricu zigzaga secība. Šī ir īpaša matricas caurlaide viendimensijas secības iegūšanai. Vispirms nāk elements T00, pēc tam T01, T10, T1 Turklāt tipiskiem fotoreālistiskajiem attēliem vispirms būs koeficienti, kas nav nulles, kas atbilst zemfrekvences komponentiem, un pēc tam - daudzas nulles (augstfrekvences komponenti).

5. Vispirms saspiešana ar RLE metodi un pēc tam ar Hafmena metodi.

Attēla atjaunošanas algoritms darbojas apgrieztā secībā. Kompresijas pakāpe no 5 līdz 100 vai vairāk reizēm. Tajā pašā laikā lielākajai daļai fotoreālistisku attēlu vizuālā kvalitāte saglabājas labā līmenī, ja tos saspiež līdz 15 reizēm. Algoritms un formāts ir visizplatītākais pilnkrāsu attēlu pārsūtīšanai un glabāšanai.

Viļņu transformācija Signāli ir klasiskās Furjē transformācijas vispārinājums. Termins "vilnis" tulkojumā no angļu valodas nozīmē "mazs (īss) vilnis". Viļņi ir vispārināts nosaukums noteiktas formas matemātisko funkciju saimēm, kuras ir lokālas laikā un frekvencē un kurās visas funkcijas tiek iegūtas no vienas pamatfunkcijas ar tās nobīdēm un stiepēm pa laika asi.

Zaudējumu saspiešanas algoritmos, kā likums, visas kompresijas konveijera darbības tiek saglabātas, diskrēto Furjē transformāciju aizstājot ar diskrēto viļņa transformāciju. Viļņu transformācijām ir ļoti laba frekvences-telpiskā lokalizācija, un tās šajā indikatorā ir pārākas par tradicionālajām Furjē transformācijām. Tas dod iespēju piemērot spēcīgāku kvantēšanu, uzlabojot secības īpašības turpmākai saspiešanai. Attēlu saspiešanas algoritmi, kuru pamatā ir šī transformācija, ar tādu pašu kompresijas pakāpi uzrāda labākus rezultātus attēla kvalitātes uzturēšanā.

literatūra

46. ​​u.c. Ātri algoritmi digitālajā attēlu apstrādē. - M .: Radio un sakari, 1984 .-- 224 lpp.

47. Soifer attēlu apstrāde. 2. daļa. Metodes un algoritmi. - Sorosa izglītības žurnāls Nr.3, 1996.g.

48., Skrimšļa troksnis no attēliem, kuru pamatā ir nelineāri algoritmi, izmantojot rangu statistiku. - Jaroslavļas Valsts universitāte, 2007.

49. Andreev televīzijas novērošanas sistēmas. II daļa. Aritmētika - loģiskie pamati un algoritmi. Apmācība. - SPb: SPb, GUITMO, 2005 .-- 88lpp.

51. Ievads digitālajā signālu apstrādē (matemātikas pamati) .- M .: Maskavas Valsts universitāte, Datorgrafikas un multimediju laboratorija, 2002. - http: // pv. ***** / dsp / dspcourse. pdf, http://dsp-book. ***** / dspkurss. djvu, http:// geogin. ***** / arhiv / dsp / dsp4.pdf.

1i. un citi rastra grafikas algoritmiskie pamati. - Interneta Informācijas tehnoloģiju universitāte. - http:// www. ***** / goto / kurss / rastrgraph /

2i. Lukin - elektroniskās sistēmas: Lekciju konspekti. ITMO, 2004. - Sanktpēterburga, ITMO IFF, 2004. - http: // iff. ***** / kons / oes / KL. htm

Par pamanītajām kļūdām un ieteikumiem papildinājumiem: ***** @ *** ru.

Autortiesības© 2008DavidovsA.V.

Laboratorijas darbs Nr.1

Attēlu apstrādes algoritmi

Konvolūcijas operācija

Convolution ir ļoti plaši izplatīts algoritms, ko var izmantot gan attēlu pirmapstrādei, gan objektu atpazīšanai un identificēšanai. Ļaujiet attēlu norādīt ar divdimensiju spilgtuma matricu F" , un matricas impulsa reakcija H... Matricas matemātiskā konvolūcija F ar serdi H var noteikt pēc šādas formulas:

kur M2xN2 - konvolūcijas kodola matricas izmērs. Matricas izmērs F ir vienāds ar (M1 + M2-1) x (N1 + N2-1), kur M1xN1 - sākotnējās matricas izmērs F" ... Matrica F tiek iegūts no oriģinālā, pievienojot elementus matricas malās pēc kāda likuma, lai to sasniegtu vajadzīgajā izmērā. Parasti sākotnējā matrica malās ir polsterēta ar nullēm uz pusi no matricas platuma H pa kreisi un pa labi un attiecīgi pusi augstuma uz augšu un tikpat uz leju. Tad iegūtās matricas izmērs R būs tāda pati kā matrica F" .

Konvolūciju var aprēķināt tieši, "palaižot" vienu matricu pāri citai, kā jau parādīts iepriekš. attēlā. 1 parāda konvolūcijas aprēķināšanas shēmu (maskas matricas izmērs ir vienāds ar 3x3). Konvolūcijas operatoru var aplūkot kā koeficientu (masku) matricu, ko elementāri reizina ar atlasīto attēla fragmentu un pēc tam summē, lai iegūtu filtrētā attēla elementa jauno vērtību. Šī matrica var būt patvaļīga izmēra, ne vienmēr kvadrātveida.

Rīsi. 1. Konvolūcijas operācijas realizācija.

Exercise

    Realizēt algoritmu, kas veic oriģinālā attēla konvolūcijas operāciju ar matricas masku.

    Matricas maskas izmēru un veidu nosaka lietotājs.

    Izmantojiet šādas masku matricas, lai ieviestu dažādus attēlu apstrādes algoritmus:

    • lai izlīdzinātu un slāpētu trokšņus attēlā, izmantojiet šādas formas 3x3 matricas masku:

    lai uzsvērtu kontūras, tiek izmantotas šāda veida matricas maskas:

1/9*

    lai izvēlētos kontūras, tiek izmantota šāda veida maska:

4. Ieviesiet vidējo filtru, ko izmanto, lai slāpētu punktu un impulsu troksni. Attēla pikseļi un tā kaimiņi aplūkotajā apgabalā ir sakārtoti variāciju sērijā (augošā vai dilstošā pikseļu vērtībās), un šīs variāciju sērijas centrālā vērtība tiek atlasīta kā jauna pikseļa vērtība. Vidējās filtrēšanas rezultāts ir tāds, ka tiks efektīvi novērsti visi attēla nejaušie trokšņi. Tas ir tāpēc, ka jebkuras nejaušas pēkšņas pikseļu intensitātes izmaiņas interesējošā apgabalā tiks sakārtotas, t.i. tas tiks novietots šī apgabala sakārtoto vērtību augšdaļā vai apakšā un netiks ieskaitīts, jo elementu jaunajai vērtībai vienmēr tiek ņemta centra vērtība.

5. Ieviesiet reljefa algoritmu. Reljefs tiek veikts tāpat kā vidēja lieluma vai kontūru pasvītrošanas algoritmiem. Katrs attēla pikselis tiek apstrādāts ar 3x3 reljefa matricu. Piemēram, šādu matricas masku var uzskatīt par reljefu kodolu:

Kad pikseļa vērtība ir apstrādāta ar reljefu kodolu, tam tiek pievienots 128. Tas mainīs fona pikseļa vērtību uz vidēji pelēku (sarkans = 128, zaļš = 128, zils = 128). Summas, kas pārsniedz 255, var noapaļot līdz 255.

Attēla reljefā versijā kontūras šķiet izspiestas virs virsmas. Attēla apgaismojuma virzienu var mainīt, mainot kodolā pozīcijas 1 un -1. Ja, piemēram, vērtības 1 un -1 tiek apmainītas, tad apgaismojuma virziens tiek mainīts.

6. Attēla krāsojums ar ūdeni. Akvareļu filtrs pārveido attēlu, un pēc apstrādes tas izskatās kā krāsots ar akvareļu:

    Pirmais solis akvareļu filtra pielietošanā ir attēla krāsu izlīdzināšana. Viena no antialiasing metodēm ir vidējās krāsas vidējā noteikšana katrā punktā. Katra pikseļa un tā 24 kaimiņu (matricas-maskas izmērs ir 5x5) krāsu vērtība ir sakārtota virknē variāciju dilstošā vai augošā secībā. Vidējā (trīspadsmitā) krāsu vērtība variāciju sērijā tiek piešķirta centrālajam pikselim.

    pēc krāsu izlīdzināšanas jāpielieto pasvītrojuma filtrs, lai iezīmētu krāsu pāreju robežas.

Attēlu attēlojums

Ir divi galvenie attēlu attēlojuma veidi – vektors un rastra.

Vektora attēlojumā attēlu apraksta līniju (vektoru) kopa, kas satur sākuma un beigu punktu koordinātas, līniju izliekumu un citus ģeometriskos raksturlielumus, aprakstīti arī dažādu laukumu un krāsu raksturlielumu konstruēšanas noteikumi. Citiem vārdiem sakot, rastra attēlojumam ir nepieciešams izveidot noteiktu matemātisku modeli. Tāpēc vektora attēlojums galvenokārt tiek izmantots attēlu sintēzes problēmu risināšanai. Lai gan daži attēlu atpazīšanas algoritmi savam darbam prasa tieši vektora attēlojumu, kas jāiegūst no sākotnējā attēla.

Rastra attēls ir viena vai vairākas matricas, kas apraksta attēla raksturlielumu telpisko sadalījumu noteiktā Dekarta koordinātu režģī. Šajā gadījumā attēls ir veidots no daudziem punktiem, un tam ir rastra struktūra. Rastra attēla attēlojuma galvenais elements ir pikselis (saīsinājums no frāzes "attēla elementi" - attēla elementi), kuram ir koordinātes rastra koordinātu sistēmā un daži atribūti (krāsa, spilgtums, caurspīdīgums utt.). Pikseļu skaits X un Y koordinātēs (horizontālās un vertikālās) nosaka attēla attēlojuma izšķirtspēju (izmēru). Pikseļu krāsu nosaka dziļums – bitu skaits, kas nepieciešams, lai norādītu jebkuru krāsu.

Rastra attēlus atkarībā no pikseļa krāsas iestatīšanas metodēm un sākotnējā attēla īpašībām iedala:

Binārs

Pustonis

Palete

Pilna krāsa

Binārajā attēlojumā pikseļa krāsa var būt balta vai melna, un tā ir kodēta vienā bitā. Attēls ir matrica. Katram šīs matricas elementam I (i, j) ir vērtība 0 vai 1, kur i ir rindas numurs un norādītajam pikselim atbilstošā elementa kolonnas numurs j (1. att.).

Pelēktoņu attēlos pikseļi attēlo pelēktoņu spilgtuma vērtības. Matricas indeksi, kas apraksta pelēktoņu attēlu, norāda pikseļa pozīciju uz rastra un matricas elementa vērtību

- iestata tā spilgtumu I (i, j) (2. att.).

Paletes attēlus apraksta divas matricas (3. att.). Vienā tiek saglabātas indeksu vērtības, kas norāda atsauci uz paletes matricas rindu. Paletes matrica ir krāsu karte. Tajā ir 3 kolonnu grupas - atbilst sarkanajai "R", zaļajai "G" un zilajai "B" krāsai. Viņi arī nosaka atbilstošā pikseļa krāsu.

Palete ir Nc 3 matrica, kur Nc ir krāsu skaits.

Attēlu priekšapstrādes algoritmi

Pilnkrāsu attēli ir veidoti RGB formātā un attēlo trīs matricas R (i, j), G (i, j), B (i, j). Katras matricas atbilstošie elementi satur sarkanās, zaļās un zilās krāsas intensitātes vērtības matricas indeksos norādītajam pikselim. Tādējādi pilnkrāsu attēlam nav krāsu kartes un katra pikseļa krāsa tiek attēlota ar trīs skaitļiem, kas ņemti no atbilstošajām matricām (4. att.).

Skaitļu formāts matricās var būt vesels skaitlis vai peldošā komata formāts. Pirmais gadījums attiecas uz tā sauktajiem digitalizētajiem attēliem, kas iegūti, izmantojot dažādas ierīces – skenerus, digitālās kameras, televīzijas kameras u.c. Šajā formātā informācija par attēliem tiek glabāta standarta grafiskajos failos.

Otrā opcija tiek izmantota attēlu iekšējai attēlošanai to apstrādes laikā. Šajā gadījumā ir ērti normalizēt intensitātes datus vienā diapazonā, piemēram, diapazonā, un veikt dažādus aprēķinus ar peldošiem skaitļiem, un pēc tam pārvērst rezultātu sākotnējā veselā skaitļa formā. Šī metode ļauj samazināt aprēķinu kļūdas un uzlabot apstrādes rezultāta precizitāti.

Pilnkrāsu attēliem viens parametrs ir maksimālais krāsu skaits, ko var attēlot šajā formātā. Visbiežāk izmantotajiem attēliem ir 16, 256, 65536 (augstas krāsas) un 10,7 miljoni (īsto krāsu) krāsu.

Attēlu priekšapstrādes algoritmi

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

Attēlu priekšapstrādes algoritmi

Indeksa matrica

31 15 03 09

Paletes matrica

Attēlu priekšapstrādes algoritmi

Pilnkrāsu attēlu var attēlot ne tikai RGB formātā, bet arī izmantojot citas krāsu sistēmas.

HSB sistēmā krāsu attēlo šādi krāsu raksturlielumi: Hue - tonis;

Piesātinājums - piesātinājums; Spilgtums - spilgtums.

Tiek uzskatīts, ka šī krāsu sistēma atbilst cilvēka krāsu uztveres īpatnībām.

LAB sistēmā krāsa tiek uzskatīta par gaišuma un divu neatkarīgu hromatiskuma vērtību kombināciju, kas nosaka pikseļa patieso krāsu. Chroma A — izvēlas krāsu no fuksīna līdz zaļai. Hromatiskums B - otrā krāsas sastāvdaļa ir izvēlēta no diapazona no dzeltenas līdz ciānai.

Ir arī citas sistēmas krāsu attēlošanai. Protams, tie visi ir saistīti, un no viena attēlojuma var iegūt citu. Krāsu sistēmu daudzveidība ir saistīta ar uzdevumiem, kas atrisināti ar viņu palīdzību. Piemēram, ir ērtāk veikt krāsu korekciju LAB sistēmā, reproducēt attēlu monitora ekrānā RGB sistēmā, labāk drukāt,

Attēlu priekšapstrādes algoritmi

izmantojot CMYK attēlojumu. Tomēr jebkurā gadījumā, apstrādājot attēlus un tos atpazīstot, tie strādā ar attēlu rastra attēlojumu, kas satur vienu vai vairākas matricas.

Priekšapstrādes algoritmu klasifikācija

Attēlu priekšapstrādes algoritmi tiks iedalīti dažādās grupās atkarībā no klasifikācijas funkcijas. Visiem priekšapstrādes algoritmiem ir vai nu kaut kādā ziņā jāuzlabo attēlu kvalitāte, vai jāpārveido tā tālākai apstrādei visērtākajā formā.

Algoritmus, kuru mērķis ir uzlabot attēla krāsu atveidi, sauc par krāsu korekcijas algoritmiem. Šajā grupā ietilpst arī algoritmi, kas strādā ar pustoņu attēliem, kas maina to spilgtumu un kontrasta raksturlielumus.

Algoritmus, kuru mērķis ir apstrādāt attēlu telpiskās īpašības, sauc par algoritmiem telpiskā filtrēšana.Šajā grupā ietilpst algoritmi traucējumu novēršanai, algoritmi telpiskajai izlīdzināšanai un telpiskā pastiprinājuma algoritmi, algoritmi telpisko frekvenču slāpēšanai un pastiprināšanai.

Tiek saukti algoritmi, kas veic ģeometriskas darbības ar attēlu ģeometriskās apstrādes algoritmi... Tie ietver:

Attēlu priekšapstrādes algoritmi

Attēla apgriešana - noteiktas taisnstūra formas daļas atlase no sākotnējā attēla;

Mainiet attēla izmēru. Šie algoritmi izmanto dažādas interpolācijas metodes, kas ļauj pareizi aizpildīt trūkstošos pikseļus palielinātajā attēlā vai pārrēķināt pikseļu vērtības, kad attēls tiek samazināts.

Pagrieziet attēlu. Šie algoritmi pagriež sākotnējo attēlu noteiktā leņķī, pareizi pārrēķinot pikseļu vērtības, izmantojot dažādas interpolācijas metodes.

Tiek saukti algoritmi, kas veic transformācijas no vienas krāsu sistēmas uz citu krāsu konvertēšanas algoritmi... Tie ietver arī algoritmus krāsu attēlu pārvēršanai pelēktoņu un binarizācijas algoritmus, kas pārvērš sākotnējo attēlu binārā.

Algoritmus, kas izceļ dažus apgabalus sākotnējā attēlā atbilstoši dažādiem, bieži vien neformāliem nosacījumiem, sauc par segmentācijas algoritmiem. Šāda algoritma piemērs var būt, piemēram, algoritms, kuram ir jāatlasa teksta un grafiskās informācijas apgabali dokumenta attēlā, vai algoritms, kas teksta attēlā atlasa apgabalus, kas attiecas uz atsevišķiem vārdiem.

Attēlu priekšapstrādes algoritmi

Telpiskās filtrēšanas algoritmi

Attēla telpiskā filtrēšana matemātiskā formā ir diskrēta attēla konvolūcija ar kādu telpiskā filtra impulsa reakciju

Ja (i, j)

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

m N11 n N21

Im, ja oriģinālo un filtrēto attēlu matricas, h filtra impulsa reakcijas matrica,

N 11, N 21 ir impulsa reakcijas kolonnu apakšējās un augšējās robežas, N 12, N 22 ir impulsa reakcijas rindu kreisās un labās robežas.

Impulsa reakcijas matricu var iegūt, aprēķinot telpisko filtru, pamatojoties uz norādītajiem parametriem. Liela daļa literatūras, kas veltīta, piemēram, digitālajai filtrēšanai, ir veltīta telpisko filtru aprēķināšanas metodēm. Praktiskiem aprēķiniem var izmantot standarta matemātiskās pakotnes, piemēram, sistēmā “MATLAB” ir iekļauta filtru aprēķinu sistēma “Image Filter Design”.

Ņemiet vērā, ka filtrēšanu var veikt arī frekvenču domēnā. Tajā

Attēlu priekšapstrādes algoritmi

Šādā gadījumā filtrēšanas secība ir šāda:

Pārveidojiet attēlu no telpiskā domēna uz frekvences domēnu, izmantojot 2D diskrēto Furjē transformāciju

Veikt attēla frekvenču matricas elementu reizināšanu ar filtra frekvences matricu

Pārveidojiet iegūto rezultātu telpiskā domēnā, izmantojot apgriezto divdimensiju diskrēto Furjē transformāciju.

Es (x, y)

es (f x, f y)

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

Ja (fx, f y)

Ja (x, y).

Attēlu filtrēšana frekvenču domēnā tiek reti izmantota lielā aprēķinu apjoma dēļ. Tomēr šī filtrēšanas metode tiek plaši izmantota teorētiskajos aprēķinos, analizējot attēlu apstrādes iespējas. Tas ļauj skaidri iztēloties, kāda veida filtrēšana ir nepieciešama. Piemēram, ja jums ir nepieciešams izcelt asas spilgtuma izmaiņas attēlā, tad ir acīmredzams, ka jums ir jāizmanto augstas caurlaidības filtri. Gluži pretēji, ja jums ir jāatbrīvojas no zemfrekvences trokšņiem - trīcošām cilpām, atsevišķiem pārspriegumiem utt., tad jums ir jāizmanto zemfrekvences filtri. Konkrēti filtra parametri tiek izvēlēti, pamatojoties uz traucējumu frekvences analīzi un sākotnējā attēla īpašībām.