Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Sigurnost
  • Fourierova obrada digitalnih slika. Šta je diskretna slika? a šta je hardverska rezolucija

Fourierova obrada digitalnih slika. Šta je diskretna slika? a šta je hardverska rezolucija

Analogno i diskretno predstavljanje grafičkih informacija Čovek je u stanju da percipira i pohranjuje informacije u obliku slika (vizuelnih, zvučnih, taktilnih, ukusnih i olfaktornih). Vizuelne slike se mogu pohranjivati ​​u obliku slika (crteži, fotografije itd.), a zvučne slike mogu se snimati na ploče, magnetne trake, laserski diskovi itd.

Informacije, uključujući grafiku i zvuk, mogu biti predstavljene u analognom ili diskretnom obliku. Uz analognu reprezentaciju, fizička veličina poprima beskonačan broj vrijednosti, a njene vrijednosti se kontinuirano mijenjaju. Sa diskretnim predstavljanjem, fizička veličina poprima konačan skup vrijednosti, a njena vrijednost se naglo mijenja.

Navedimo primjer analognog i diskretnog predstavljanja informacija. Položaj tijela na kosoj ravni i na stepenicama određen je vrijednostima koordinata X i Y. Kada se tijelo kreće duž nagnute ravni, njegove koordinate mogu poprimiti beskonačan broj vrijednosti koje se kontinuirano mijenjaju. iz određenog raspona, a pri kretanju uz stepenice - samo određeni skup vrijednosti i promjena u skokovima


Primjer analognog prikaza grafičkih informacija može biti, na primjer, slikarsko platno, čija se boja kontinuirano mijenja, i diskretna - slika štampana pomoću inkjet štampač i koji se sastoji od pojedinačnih poena različite boje. Primjer analognog pohranjivanja audio informacija je vinil ploča (soundtrack kontinuirano mijenja svoj oblik), a diskretni - audio CD (čiji zvučni zapis sadrži područja različite refleksivnosti).

Pretvaranje grafičkih i zvučnih informacija iz analogni oblik u diskretnu se pravi uzorkovanjem, odnosno razdvajanjem kontinualne grafičke slike i kontinuirane (analogne) zvučni signal na pojedinačni elementi. U procesu diskretizacije vrši se kodiranje, odnosno dodjeljivanje određene vrijednosti svakom elementu u obliku koda.

Diskretizacija je transformacija kontinuirane slike i zvuk u skup diskretnih vrijednosti u obliku kodova.

zvuk u memoriji računara

Osnovni koncepti: audio adapter, brzina uzorkovanja, dubina bita registra, zvučna datoteka.

Fizička priroda zvuka su vibracije u određenom frekventnom opsegu koje se prenose zvučnim talasom kroz vazduh (ili drugi elastični medij). Proces pretvaranja zvučnih talasa u binarni kod u memoriji računara: zvučni val -> mikrofon -> naizmjenična električna struja -> audio adapter -> binarni kod -> memorija računara .

Proces reprodukcije zvučnih informacija pohranjenih u memoriji računara:
memorija računara -> binarni kod -> audio adapter -> naizmjenična električna struja -> zvučnik -> zvučni val.

Audio adapter(zvučna kartica) - poseban uređaj povezan s računalom, dizajniran za pretvaranje električnih vibracija audio frekvencija u numerički binarni kod prilikom unosa zvuka i za inverzna transformacija(od numeričkog koda do električnih vibracija) prilikom reprodukcije zvuka.

Tokom audio snimanja audio adapter sa određenom periodu mjeri amplitudu električne struje i upisuje se u registar str binarni kod primljene vrijednosti. Zatim se primljeni kod iz registra ponovo upisuje u RAM računara. Kvalitet kompjuterskog zvuka je određen karakteristikama audio adaptera: frekvencijom uzorkovanja i dubinom bitova.

Frekvencija uzorkovanja je broj mjerenja ulaznog signala u 1 sekundi. Frekvencija se mjeri u hercima (Hz). Jedno mjerenje u sekundi odgovara frekvenciji od 1 Hz. 1000 mjerenja u jednoj sekundi -1 kiloherc (kHz). Tipične frekvencije uzorkovanja audio adaptera: 11 kHz, 22 kHz, 44,1 kHz, itd.

Registrirajte bitnu dubinu– broj bitova u registru audio adaptera. Dubina bita određuje tačnost mjerenja ulaznog signala. Što je dubina bita veća, to je manja greška svake pojedinačne konverzije veličine električnog signala u broj i obrnuto. Ako je dubina bita 8(16), tada se prilikom mjerenja ulaznog signala može dobiti 2 8 =256 (2 16 =65536) različitih vrijednosti. Očigledno 16-bitni Audio adapter kodira i reprodukuje zvuk preciznije od 8-bitnog.

Zvučni fajl- fajl koji pohranjuje zvučne informacije u numeričkom binarnom obliku. Tipično, informacije u zvučne datoteke podvrgava se kompresiji.

Primjeri riješenih problema.

Primjer #1.
Odredite veličinu (u bajtovima) digitalne audio datoteke čije je vrijeme reprodukcije 10 sekundi pri frekvenciji uzorkovanja od 22,05 kHz i rezoluciji od 8 bita. Datoteka nije komprimirana.

Odluka.
Formula za izračunavanje veličine (u bajtovima) digitalne audio datoteke (mono zvuk) je (frekvencija uzorkovanja u Hz)*(vrijeme snimanja u sekundama)*(rezolucija bitova)/8.

Tako se datoteka izračunava na sljedeći način: 22050*10*8/8 = 220500 bajtova.

Zadaci za samostalan rad

br. 1. Odredite količinu memorijskog prostora za digitalnu audio datoteku koja ima dvominutno vrijeme reprodukcije pri brzini uzorkovanja od 44,1 kHz i rezoluciji od 16 bita.

br. 2. Korisnik ima memoriju od 2,6 MB. Trebate snimiti digitalnu audio datoteku u trajanju od 1 minute. Kolika bi trebala biti brzina uzorkovanja i dubina bita?

br. 3. Volume slobodna memorija na disku - 5,25 MB, dubina bita zvuka na ploči - 16. Koliko traje zvuk digitalne audio datoteke snimljene frekvencijom uzorkovanja od 22,05 kHz?

br. 4. Jedan minut digitalnog audio fajla zauzima 1,3 MB na disku, dubina bita zvučna kartica– 8. Koja je brzina uzorkovanja snimljenog audio zapisa?

br. 5. Dvije minute digitalnog audio snimanja zauzimaju 5,1 MB prostora na disku. Frekvencija uzorkovanja - 22050 Hz. Koja je bitnost audio adaptera? br. 6. Količina slobodne memorije na disku je 0,01 GB, dubina bita zvučne kartice je 16. Koliko traje zvuk digitalne audio datoteke snimljene brzinom uzorkovanja od 44100 Hz?

Prikaz grafičkih informacija.

Rastersko predstavljanje.

Osnovni pojmovi: kompjuterska grafika, piksel, raster, rezolucija ekrana, video informacije, video memorija, grafička datoteka, dubina bita, stranica video memorije, kod boje piksela, grafički primitiv, grafički koordinatni sistem.

Kompjuterska grafika- dio informatike čiji je predmet rad na računaru sa grafičkim slikama (crteži, crteži, fotografije, video ramovi i sl.).

Pixel- najmanji element slike na ekranu (tačka na ekranu).

Raster- pravougaona mreža piksela na ekranu.

Rezolucija ekrana– veličina rasterske mreže određena kao proizvod M*N, gdje je M broj tačaka duž horizontale, N broj tačaka duž vertikale (broj redova).

Video informacije– informacije o slici prikazanoj na ekranu računara, pohranjene u kompjuterska memorija.

video memorija- memorija sa slučajnim pristupom koja pohranjuje video informacije tokom njihove reprodukcije u sliku na ekranu.

Grafička datoteka - fajl koji pohranjuje informacije o grafička slika.

Broj boja reprodukovanih na ekranu (K) i broj bitova dodeljenih u video memoriji za svaki piksel (N) povezani su formulom: K=2 N

Poziva se vrijednost N dubina bita.

Stranica- dio video memorije koji sadrži informacije o jednoj slici na ekranu (jedna "slika" na ekranu). Više stranica se može staviti u video memoriju istovremeno.

Sva raznolikost boja na ekranu dobija se mešanjem tri osnovne boje: crvene, plave i zelene. Svaki piksel na ekranu sastoji se od tri blisko raspoređena elementa koji svijetle u ovim bojama. Displeji u boji koji koriste ovaj princip nazivaju se RGB (crveno-zeleno-plavi) monitori.

Šifra boje piksela sadrži informacije o proporciji svake osnovne boje.
Ako sve tri komponente imaju isti intenzitet (svjetlina), onda iz njihovih kombinacija možete dobiti 8 razne boje(2 3). Sljedeća tabela prikazuje kodiranje palete od 8 boja pomoću tri-bita binarni kod. U njemu je prisustvo osnovne boje označeno jednom, a odsustvo nulom.

binarni kod


To W With Boja
0 0
0
Crno
0 0
1
Plava
0 1 0 Zeleno
0 1 1 Plava
1 0
0
Crveni
1 0
1
Pink
1 1
0
Brown
1 1
1
Bijelo

Paleta od šesnaest boja se dobija korišćenjem 4-bitnog kodiranja piksela: jedan bit intenziteta se dodaje na tri bita osnovnih boja. Ovaj bit kontrolira svjetlinu sve tri boje u isto vrijeme. Na primjer, ako u paleti od 8 boja kod 100 označava crvenu, onda u paleti od 16 boja: 0100 - crvena, 1100 - svijetlo crvena; 0110 - smeđa, 1110 - svijetlo smeđa (žuta).

Veliki broj boja dobija se odvojenom kontrolom intenziteta osnovnih boja. Štaviše, intenzitet može imati više od dva nivoa, ako je dodijeljeno više od jednog bita za kodiranje svake od osnovnih boja.

Kada se koristi bitna dubina od 8 bita/piksel, broj boja: 2 8 =256. Bitovi takvog koda se distribuiraju na sljedeći način: CCCC3SS.

To znači da su 3 bita dodijeljena za crvenu i zelenu komponentu, a 2 bita za plavu komponentu. Dakle, crvena i zelena komponenta imaju po 2 3 =8 nivoa svjetline, a plava komponenta ima 4 nivoa.

Vektorska reprezentacija.

U vektorskom pristupu, slika se smatra skupom jednostavnih elemenata: ravnih linija, lukova, krugova, elipsa, pravokutnika, sjenčanja itd., koji se nazivaju grafički primitivi. Grafičke informacije su podaci koji na jedinstven način identificiraju sve grafičke primitive koji čine crtež.

Položaj i oblik grafičkih primitiva su specificirani u grafički koordinatni sistem povezan sa ekranom. Obično se ishodište nalazi u gornjem lijevom uglu ekrana. Mreža piksela se poklapa sa koordinatnom mrežom. Horizontalna X-osa je usmjerena s lijeva na desno; vertikalna Y-osa je od vrha do dna.

Segment prave linije je jednoznačno određen označavanjem koordinata njegovih krajeva; krug - koordinate centra i radijusa; poliedar - po koordinatama njegovih uglova, zasjenjeno područje - po graničnoj liniji i boji ispune itd.

Tim

Akcija

Linija do X1,Y1

Nacrtajte liniju od trenutne pozicije do pozicije (X1, Y1).

Linija X1, Y1, X2, Y2

Nacrtajte liniju sa početnim koordinatama X1, Y1 i krajnjim koordinatama X2, Y2. Trenutna pozicija nije postavljena.

Krug X, Y, R

Nacrtajte krug: X, Y su koordinate centra, R je dužina radijusa u koracima rasterske mreže.

Elipsa X1, Y1, X2, Y2

Nacrtajte elipsu ograničenu pravokutnikom; (X1, Y1) su koordinate gornjeg lijevog, a (X2, Y2) su koordinate donjeg desnog ugla ovog pravougaonika.

Pravougaonik X1, Y1, X2, Y2

Nacrtajte pravougaonik; (X1, Y1) su koordinate gornjeg lijevog ugla, a (X2, Y2) su koordinate donjeg desnog ugla ovog pravokutnika.

Boja crteža BOJA

Postavite trenutnu boju crteža.

Boja ispune BOJA

Postavite trenutnu boju ispune.

Obojite preko X, Y, BOJA OBRUKA

Obojite proizvoljnu zatvorenu figuru; X, Y – koordinate bilo koje tačke unutar zatvorene figure, BOJA GRANICA – boja granične linije.

Primjeri riješenih problema.

Primjer #1.
Za formiranje boje koristi se 256 nijansi crvene, 256 nijansi zelene i 256 nijansi plave. Koliko boja može biti prikazano na ekranu u ovom slučaju?

Odluka:
256*256*256=16777216.

Primjer #2.
Na ekranu rezolucije 640 * 200 prikazuju se samo slike u dvije boje. Koja je minimalna količina video memorije potrebna za pohranjivanje slike?

Odluka.
Pošto je dubina bita dvobojne slike 1, a video memorija mora sadržavati najmanje jednu stranicu slike, količina video memorije je: 640*200*1=128000 bita =16000 bajtova.

Primjer #3.
Koliko je video memorije potrebno za čuvanje četiri stranice slike ako je dubina bita 24, a rezolucija ekrana 800*600 piksela?

Odluka.
Da biste pohranili jednu stranicu, trebate

800*600*24 = 11.520.000 bita = 1.440.000 bajtova. Za 4, respektivno, 1.440.000 * 4 = 5.760.000 bajtova.

Primjer broj 4.
Dubina bita je 24. Koliko različitih nijansi sive boje može se prikazati na ekranu?
Napomena: Nijansa sive se dobija kada su nivoi svetline sve tri komponente jednaki. Ako su sve tri komponente maksimalni nivo osvetljenost, ispostavilo se Bijela boja; odsustvo sve tri komponente predstavlja crnu boju.

Odluka.
Pošto da bi primili nijanse sive RGB komponente su iste, tada je dubina 24/3=8. Dobijamo broj boja 2 8 =256.

Primjer broj 5.
Zadata rasterska mreža 10*10. Opišite slovo "K" nizom vektorskih naredbi.

Odluka:
U vektorskom prikazu, slovo "K" je tri reda. Bilo koja linija se opisuje specificiranjem koordinata njenih krajeva u obliku: LINIJA (X1,Y1,X2,Y2). Slika slova "K" će biti opisana na sljedeći način:

LINIJA (4,2,4,8)
LINIJA (5,5,8,2)
LINE (5,5,8,8)

Zadaci za samostalan rad.

br. 1. Koliko je video memorije potrebno za pohranjivanje dvije stranice slike, pod uslovom da je rezolucija ekrana 640 * 350 piksela, a broj korištenih boja 16?

br. 2. Količina video memorije je 1 MB. Rezolucija ekrana je 800*600. Koji maksimalni iznos boje se mogu koristiti pod uslovom da je video memorija podijeljena na dvije stranice?

br. 3. Dubina bita je 24. Opišite nekoliko opcija binarno predstavljanje svijetlo sive i tamno sive nijanse.

br. 4. Na ekranu računara potrebno je da dobijete 1024 nijanse sive. Kolika bi trebala biti dubina bita?

br. 5. Za prikaz decimalnih znamenki u standardu poštanski broj(kako pišu na kovertama) dobijaju vektorsku i rastersku reprezentaciju. Sami odaberite veličinu rasterske mreže.

br. 6. Reproducirajte crteže na papiru pomoću vektorskih naredbi. Rezolucija 64*48.

ALI)
Crtež Boja Crvena
Boja ispune žuta
Krug 16, 10, 2
Boja preko 16, 10, crvena
Set 16, 12
Linija do 16, 23
Linija do 19, 29
Linija do 21, 29
Red 16, 23, 13, 29
Red 13, 29, 11, 29
Red 16, 16, 11, 12
Red 16, 16, 21, 12

B)
Crtež Boja Crvena
Boja senčenja Crvena
Zaokruži 20, 10, 5
Zaokruži 20, 10, 10
Boja preko 25, 15, crvena
Krug 20, 30, 5
Krug 20, 30, 10
Boja preko 28, 32, crvena

Digitalna fotografija ili na neki drugi način bitmap je niz brojeva snimljenih senzorima nivoa svjetline u dvodimenzionalnoj ravni. Znajući da sa matematičke tačke gledišta, tanko sočivo vrši Fourierovu transformaciju slika smeštenih u fokalne ravni, moguće je kreirati algoritme za obradu slike koji su analogni obradi slike u klasičnom optičkom sistemu.

Formula takvih algoritama će izgledati ovako:

  1. Z=FFT(X) – direktna dvodimenzionalna Fourierova transformacija
  2. Z′=T(Z) – primjena funkcije ili transparentnosti na Fourierovu sliku slike
  3. Y=BFT(Z′) – inverzna dvodimenzionalna Fourierova transformacija
Fourierove transformacije se izračunavaju korištenjem brzih diskretnih Fourierovih algoritama transformacije. Iako optički sistem sočiva izvodi Fourierovu transformaciju na kontinuiranom rasponu argumenta i za kontinuirani spektar, ali kada se pređe na digitalnu obradu podataka, formule Fourierove transformacije mogu se zamijeniti diskretnim formulama Fourierove transformacije.

Primjeri implementacije

  • Algoritam zamućenja slike
Implementirani algoritmi su dio biblioteke otvorenog koda. izvorni kod FFTTools. Internet adresa: github.com/dprotopopov/FFTTools

Algoritam zamućenja slike

AT optički sistemi otvor blende koji se nalazi u fokalnoj ravni je obična rupa na ekranu. Kao rezultat prolaska svjetlosni tok kroz dijafragmu, talasi visoke frekvencije (sa kraćim talasnim dužinama) prolaze kroz prepreku i talasi niske frekvencije(sa većim talasnim dužinama) su odsječene ekranom. Ovo poboljšava oštrinu rezultirajuće slike. Ako se rupa na ekranu zameni preprekom na ekranu, rezultat će biti zamućena slika, jer će se formirati od frekvencija talasnih dužina velikih talasnih dužina.

algoritam:

  1. Izračunajte niz Z′=T(Z), gdje je T nuliranje redova i stupaca koji se nalaze u datim unutrašnjim regijama matrice-argumenta koji odgovaraju visokim frekvencijama 5. (to jest, nuliranje koeficijenata Fourierove ekspanzije koji odgovaraju to visoke frekvencije)

Algoritam za izoštravanje slike

U optičkim sistemima, otvor blende koji se nalazi u fokalnoj ravni je jednostavna rupa na ekranu. Kao rezultat prolaska svetlosnog toka kroz dijafragmu, talasi visoke frekvencije (sa kraćim talasnim dužinama) prolaze kroz prepreku, a talasi niske frekvencije (sa dužim talasnim dužinama) bivaju presečeni ekranom. Ovo poboljšava oštrinu rezultirajuće slike.

algoritam:

  1. Neka je X(N1,N2) niz svjetlina piksela slike.
  2. Izračunajte Px = srednju (rms) svjetlinu piksela u nizu X
  3. Izračunati niz Z=FT(X) - direktna dvodimenzionalna diskretna Fourierova transformacija
  4. Sačuvajte vrijednost L=Z(0,0) - koja odgovara prosječnoj svjetlini piksela na originalnoj slici
  5. Izračunajte niz Z′=T(Z), gdje je T nuliranje redova i stupaca koji se nalaze u datim vanjskim područjima matrice-argumenta koji odgovaraju niskim 6. frekvencijama (to jest, nuliranje koeficijenata Fourierove ekspanzije koji odgovaraju na niske frekvencije)
  6. Vratite vrijednost Z'(0,0)=L - koja odgovara prosječnoj svjetlini originalnih piksela slike
  7. Izračunajte niz Y=RFT(Z′) – inverzna 2D diskretna Fourierova transformacija
  8. Izračunajte Py = srednju (rms) svjetlinu piksela u nizu Y
  9. Normalizirajte niz Y(N1,N2) prosječnim nivoom svjetline Px/Py

Algoritam za skaliranje slike

U optičkim sistemima, svjetlosni tok u fokalnoj ravni sistema je Fourierova transformacija originalne slike. Veličina slike dobijene na izlazu optičkog sistema određena je odnosom žižnih daljina objektiva i okulara.

algoritam:

  1. Neka je X(N1,N2) niz svjetlina piksela slike.
  2. Izračunajte Px = srednju (rms) svjetlinu piksela u nizu X
  3. Izračunati niz Z=FT(X) - direktna dvodimenzionalna diskretna Fourierova transformacija
  4. Izračunajte niz Z′=T(Z), gdje je T ili dodavanje nula redova i stupaca matrice koji odgovaraju visokim frekvencijama, ili brisanje redova i stupaca matrice koji odgovaraju visokim frekvencijama da bi se dobila potrebna veličina konačne slike
  5. Izračunajte niz Y=RFT(Z′) – inverzna 2D diskretna Fourierova transformacija
  6. Izračunajte Py = srednju (rms) svjetlinu piksela u nizu Y
  7. Normalizirajte niz Y(M1,M2) prosječnim nivoom svjetline Px/Py
Korišćen softver
  • Microsoft vizuelni studio 2013 C# - okruženje i programski jezik
  • EmguCV/OpenCV - C++ biblioteka struktura i algoritama za obradu slika
  • FFTWSharp/FFTW – C++ biblioteka koja implementira brze diskretne Fourierove algoritme transformacije

Algoritam zamućenja slike

Algoritamski kod

///

/// Obriši internu regiju niza /// /// Niz vrijednosti /// Veličina unutrašnjeg slijepog područja privatni static void Blind (Složeni[,] podaci, veličina) ( int n0 = data.GetLength(0); int n1 = data.GetLength(1); int n2 = data.GetLength(2); int s0 = Math.Max(0, (n0 - veličina.Visina)/2 ); int s1 = Math.Max(0, (n1 - veličina.Width)/2); int e0 = Math.Min((n0 + size.Height)/2, n0); int e1 = Math.Min(( n1 + veličina.Širina)/2, n1); za (int i = s0; i< e0; i++) { Array.Clear(data, i*n1*n2, n1*n2); } for (int i = 0; i < s0; i++) { Array.Clear(data, i*n1*n2 + s1*n2, (e1 - s1)*n2); } for (int i = e0; i < n0; i++) { Array.Clear(data, i*n1*n2 + s1*n2, (e1 - s1)*n2); } } /// /// Blur bitmap sa Najbrža Fourierova transformacija /// /// Zamućena bitmapa public Bitmap Blur(Bitmap bitmap) (koristeći (var image = new Image (bitmap)) ( int dužina = image.Data.Length; int n0 = image.Data.GetLength(0); int n1 = image.Data.GetLength(1); int n2 = image.Data.GetLength(2); var doubles = new double;Buffer.BlockCopy(image.Data, 0, doubles, 0, length*sizeof (double));double power = Math.Sqrt(doubles.Average(x => x*x));var input = novi fftw_complexarray(doubles.Select(x => new Complex(x, 0)).ToArray()); var output = novi fftw_complexarray(dužina); fftw_plan.dft_3d(n0, n1, n2, ulaz, izlaz, fftw_direction. Naprijed, fftw_flags.Estimate).Execute(); Complex complex = output.GetData_Complex(); var data = new Complex; var buffer = new double; GCHandle complexHandle = GCHandle.Alloc(complex, GCHandleType.Pinned); GCHandle dataHandle; .Alloc(data, GCHandleType.Pinned); IntPtr complexPtr = complexHandle.AddrOfPinnedObject(); IntPtr dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy(complexPtr, buffer, 0, buffer.Length, Marbuffer.Length); , dataPtr, buffer.Length); Blind(podaci, _blind erSize); Marshal.Copy(dataPtr, bafer, 0, buffer.Length); Marshal.Copy(buffer, 0, complexPtr, buffer.Length); complexHandle.Free(); dataHandle.Free(); input.SetData(kompleks); fftw_plan.dft_3d(n0, n1, n2, ulaz, izlaz, fftw_direction.Nazad, fftw_flags.Procjena).Izvrši(); dupli niz2 = output.GetData_Complex().Select(x => x.Magnitude).ToArray(); dvostruka snaga2 = Math.Sqrt(niz2.Prosjek(x => x*x)); doubles = array2.Select(x =>

Algoritam za izoštravanje slike

Algoritamski kod

///

/// Obriši vanjsku regiju niza /// /// Niz vrijednosti /// Veličina vanjskog slijepog područja privatni statički void Blind(Complex[,] podaci, veličina veličine) ( int n0 = data.GetLength(0); int n1 = data.GetLength(1); int n2 = data.GetLength(2); int s0 = Math. Max(0, (n0 - veličina.Visina)/2); int s1 = Math.Max(0, (n1 - veličina.Širina)/2); int e0 = Math.Min((n0 + size.Height)/ 2, n0); int e1 = Math.Min((n1 + size.Width)/2, n1); for (int i = 0; i< s0; i++) { Array.Clear(data, i*n1*n2, s1*n2); Array.Clear(data, i*n1*n2 + e1*n2, (n1 - e1)*n2); } for (int i = e0; i < n0; i++) { Array.Clear(data, i*n1*n2, s1*n2); Array.Clear(data, i*n1*n2 + e1*n2, (n1 - e1)*n2); } } /// /// Oštra bitmapa s najbržom Fourierovom transformacijom /// /// izoštrena bitmapa javna Bitmap Sharp(Bitmap bitmap) ( koristeći (var image = nova slika (bitmap)) ( int dužina = image.Data.Length; int n0 = image.Data.GetLength(0); int n1 = image.Data.GetLength(1); int n2 = image.Data.GetLength(2); var doubles = new double;Buffer.BlockCopy(image.Data, 0, doubles, 0, length*sizeof (double));double power = Math.Sqrt(doubles.Average(x => x*x));var input = novi fftw_complexarray(doubles.Select(x => new Complex(x, 0)).ToArray()); var output = novi fftw_complexarray(dužina); fftw_plan.dft_3d(n0, n1, n2, ulaz, izlaz, fftw_direction. Naprijed, fftw_flags.Estimate).Execute(); Složen kompleks = output.GetData_Complex(); Kompleksni nivo = složen; var podaci = novi kompleks; var bafer = novi dvostruki; GCHandle complexHandle = GCHandle.Alloc(kompleks, GCHandleType.Pinned) ; GCHandle dataHandle = GCHandle.Alloc(data, GCHandleType.Pinned); IntPtr complexPtr = complexHandle.AddrOfPinnedObject(); IntPtr dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy, buffersLtr.buffers,Ltr. Kopiraj(bafer, 0, dataPtr, bafer.Le ngth); Blind(podaci, _blinderSize); Marshal.Copy(dataPtr, bafer, 0, buffer.Length); Marshal.Copy(buffer, 0, complexPtr, buffer.Length); complexHandle.Free(); dataHandle.Free(); kompleks = nivo; input.SetData(kompleks); fftw_plan.dft_3d(n0, n1, n2, ulaz, izlaz, fftw_direction.Nazad, fftw_flags.Procjena).Izvrši(); dupli niz2 = output.GetData_Complex().Select(x => x.Magnitude).ToArray(); dvostruka snaga2 = Math.Sqrt(niz2.Prosjek(x => x*x)); doubles = array2.Select(x => x*power/power2).ToArray(); Buffer.BlockCopy(dvostruko, 0, image.Data, 0, length*sizeof (double)); return image.Bitmap; ) )

Algoritam za skaliranje slike

Algoritamski kod

///

/// Kopiraj nizove /// /// ulazni niz /// izlazni niz privatni statički void Copy(Complex[,] ulaz, Complex[,] izlaz) ( int n0 = input.GetLength(0); int n1 = input.GetLength(1); int n2 = input.GetLength(2); int m0 = output.GetLength(0);int m1 = output.GetLength(1);int m2 = output.GetLength(2);int ex0 = Math.Min(n0, m0)/2;int ex1 = Math.Min(n1 , m1)/2;int ex2 = Math.Min(n2, m2);Debug.Assert(n2 == m2);for (int k = 0;k< ex2; k++) { for (int i = 0; i <= ex0; i++) { for (int j = 0; j <= ex1; j++) { int ni = n0 - i - 1; int nj = n1 - j - 1; int mi = m0 - i - 1; int mj = m1 - j - 1; output = input; output = input; output = input; output = input; } } } } /// /// Promjena veličine bitmape uz najbržu Fourierovu transformaciju /// /// Promijenjena veličina bitmapa public Bitmap Stretch(Bitmap bitmap) (koristeći (var image = new Image (bitmap)) ( int dužina = image.Data.Length; int n0 = image.Data.GetLength(0); int n1 = image.Data.GetLength(1); int n2 = image.Data.GetLength(2); var doubles = new double;Buffer.BlockCopy(image.Data, 0, doubles, 0, length*sizeof (double));double power = Math.Sqrt(doubles.Average(x => x*x));var input = novi fftw_complexarray(doubles.Select(x => new Complex(x, 0)).ToArray()); var output = novi fftw_complexarray(dužina); fftw_plan.dft_3d(n0, n1, n2, ulaz, izlaz, fftw_direction. Naprijed, fftw_flags.Estimate).Execute(); Kompleksni kompleks = output.GetData_Complex(); koristeći (var image2 = nova slika (_newSize)) ( int length2 = image2.Data.Length; int m0 ​​= image2.Data.GetLength(0); int m1 = image2.Data.GetLength(1); int m2 = image2.Data.GetLength(2) ); var complex2 = novi kompleks; var data = novi kompleks; var data2 = novi kompleks; var buffer = novi dupli; GCHandle complexHandle = GCHandle.Alloc(complex, GCHandleType.Pinned); GCHandle dataHandle = GCHandle.Alloc(data, GCHandleType .Pinned ); IntPtr complexPtr = complexHandle.AddrOfPinnedObject(); IntPtr dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy(complexPtr, buffer, 0, buffer.Length); Marshal.Copy(buffer, 0, buffer.) ); complexHandle.Free(); dataHandle.Free(); Copy(data, data2); buffer = new double; complexHandle = GCHandle.Alloc(complex2, GCHandleType.Pinned); dataHandle = GCHandle.Alloc(data2, GCHandleType.Pinned); ); complexPtr = complexHandle.AddrOfPinnedObject(); dataPtr = dataHandle.AddrOfPinnedObject(); Marshal.Copy(dataPtr, buffer, 0, buffer.Length); Marshal.Copy(buffer, 0, complexPtr, buffer.Length); complexHandle.Free(); dataHandle.Free(); var input2 = novi fftw_complexarray(complex2); var output2 = novi fftw_complexarray(length2); fftw_plan.dft_3d(m0, m1, m2, ulaz2, izlaz2, fftw_direction.Nazad, fftw_flags.Procjena).Izvrši(); dvostruki niz2 = output2.GetData_Complex().Select(x => x.Magnitude).ToArray(); dvostruka snaga2 = Math.Sqrt(niz2.Prosjek(x => x*x)); double doubles2 = array2.Select(x => x*power/power2).ToArray(); Buffer.BlockCopy(doubles2, 0, image2.Data, 0, length2*sizeof (double)); return image2.Bitmap; ) ) )

Signali ulaze u sistem za obradu informacija, po pravilu, u kontinuiranom obliku. Za kompjutersku obradu kontinuiranih signala potrebno ih je, prije svega, pretvoriti u digitalne. Za to se izvode operacije diskretizacije i kvantizacije.

Uzorkovanje slike

Uzorkovanje- ovo je transformacija kontinuiranog signala u niz brojeva (brojeva), odnosno predstavljanje ovog signala prema nekoj konačnodimenzionalnoj bazi. Ova reprezentacija se sastoji u projektovanju signala na datu osnovu.

Najpovoljniji u smislu organizacije obrade i prirodnim putem Diskretizacija je predstavljanje signala kao uzorka njihovih vrijednosti (uzoraka) na odvojenim, pravilno raspoređenim tačkama. Ova metoda se zove skrining, i redoslijed čvorova u kojima se uzimaju uzorci - raster. Interval u kojem se uzimaju vrijednosti kontinuiranog signala naziva se korak uzorkovanja. Recipročna vrijednost koraka se zove stopa uzorkovanja,

Suštinsko pitanje koje se nameće tokom uzorkovanja je: kojom frekvencijom treba uzimati uzorke signala da bi se moglo rekonstruisati obrnuto od ovih uzoraka? Očigledno je da ako se uzorci uzimaju prerijetko, onda neće sadržavati informacije o signalu koji se brzo mijenja. Brzina promjene signala karakterizira gornja frekvencija njegovog spektra. Dakle, minimalna dozvoljena širina intervala uzorkovanja povezana je sa najvišom frekvencijom spektra signala (obrnuto proporcionalno njoj).

Za slučaj uniformne diskretizacije, Kotelnikova teorema, objavljen 1933. godine u radu “O propusnosti etra i žice u telekomunikacijama”. Kaže: ako kontinuirani signal ima spektar ograničen frekvencijom, onda se može potpuno i jedinstveno rekonstruirati iz svojih diskretnih uzoraka uzetih s periodom, tj. sa frekvencijom.

Oporavak signala se vrši pomoću funkcije . Kotelnikov je dokazao da se kontinuirani signal koji zadovoljava gore navedene kriterije može predstaviti kao niz:

.

Ova teorema se također naziva teorema uzorkovanja. Funkcija se također poziva funkcija brojanja ili Kotelnikov, iako je interpolacijski niz ove vrste proučavao Whitaker 1915. godine. Funkcija brojanja ima beskonačnu dužinu u vremenu i dostiže svoju maksimalnu vrijednost, jednako jedan, u tački oko koje je simetrična.

Svaka od ovih funkcija može se smatrati odgovorom ideala niskopropusni filter(LPF) na delta puls koji je stigao u to vrijeme. Stoga, da bi se povratio kontinuirani signal iz njegovih diskretnih uzoraka, oni moraju biti propušteni kroz odgovarajući niskopropusni filter. Treba napomenuti da je takav filter ne-kauzalni i fizički neostvariv.

Navedeni omjer znači mogućnost precizne rekonstrukcije signala ograničenog spektra iz niza njihovih očitavanja. Signali ograničenog spektra su signali čiji je Fourierov spektar različit od nule samo unutar ograničenog područja domene definicije. Njima se mogu pripisati optički signali, jer. Fourierov spektar slika dobijenih u optičkim sistemima je ograničen zbog ograničene veličine njihovih elemenata. Frekvencija se zove Nyquist frekvencija. Ovo je granična frekvencija iznad koje ne bi trebalo biti spektralnih komponenti u ulaznom signalu.

Kvantizacija slike

U digitalnom snimanju, kontinuirani dinamički raspon vrijednosti osvjetljenja podijeljen je na više diskretnih nivoa. Ova procedura se zove kvantizacija. Njegova suština leži u transformaciji kontinuirane varijable u diskretnu varijablu koja uzima konačan skup vrijednosti. Ove vrijednosti se nazivaju nivoi kvantizacije. U opštem slučaju, transformacija je izražena stepenastom funkcijom (slika 1). Ako intenzitet uzorka slike pripada intervalu (tj. kada ) , tada se originalni uzorak zamjenjuje nivoom kvantizacije , gdje je pragovi kvantizacije. Pretpostavlja se da je dinamički raspon vrijednosti svjetline ograničen i jednak .

Rice. 1. Funkcija koja opisuje kvantizaciju

Glavni zadatak u ovom slučaju je odrediti vrijednosti pragova i nivoa kvantizacije. Najjednostavniji način za rješavanje ovog problema je razdvajanje dinamički raspon u istim intervalima. Međutim, ovo rješenje nije najbolje. Ako su vrijednosti intenziteta većine uzoraka slike grupirane, na primjer, u "tamnoj" oblasti i broj nivoa je ograničen, onda je preporučljivo kvantizirati neravnomjerno. U "tamnoj" regiji treba ga kvantizirati češće, a rjeđe u "svjetlom" području. Ovo će smanjiti grešku kvantizacije.

U sistemima digitalna obrada slike imaju tendenciju da smanje broj nivoa i pragova kvantizacije, budući da količina informacija potrebnih za kodiranje slike zavisi od njihovog broja. Međutim, sa relativno mali broj nivoa na kvantizovanoj slici, moguća je pojava lažnih kontura. Oni nastaju kao rezultat nagle promjene svjetline kvantizirane slike i posebno su uočljivi u ravnim područjima njene promjene. Lažne konture značajno narušavaju vizuelni kvalitet slike, jer je ljudski vid posebno osetljiv na konture. Za ujednačenu kvantizaciju tipičnih slika potrebna su najmanje 64 nivoa.

Recite i pokažite Pascal kao primjer: 1) Šta je apsolutno i čemu služi? 2) Šta je asm i čemu služi? 3) Šta je

konstruktor i destruktor i čemu služi?

4) Šta je implementacija i čemu služi?

5) Imenujte Pascal module (u redu Koristi, na primjer crt) i koje karakteristike ovaj modul pruža?

6) Koji je tip varijable: pokazivač (Pointer)

7) I na kraju: šta znači simbol @, #, $, ^?

1. Šta je objekat?2. Šta je sistem?3. Koje je uobičajeno ime objekta? Navedite primjer.4. Šta je naziv jednog objekta? Navedite primjer.5.

Navedite primjer prirodnog sistema.6. Navedite primjer tehničkog sistema.7. Navedite primjer mješovitog sistema.8. Navedite primjer nematerijalnog sistema.9. Šta je klasifikacija?10. Šta je klasa objekata?

1. Pitanje 23 - navedite načine rada pristupnog subd-a:

Kreiranje tablice u modu dizajna;
- kreiranje tabele pomoću čarobnjaka;
- kreiranje tabele unosom podataka.

2. šta je vektorski format?

3. Da li se uslužnim programima može pripisati sljedeće:
a) programi za održavanje diska (kopiranje, liječenje, formatiranje, itd.)
b) kompresiju fajlova na diskovima (arhivatori)
c) borba protiv kompjuterskih virusa i još mnogo toga.
I sam mislim da je ovdje odgovor B - je li tako ili ne?

4. Šta se odnosi na svojstva algoritma (a. diskretnost, b. efektivnost, c. masovnost, d. sigurnost, d. izvodljivost i razumljivost) - ovdje mislim da su sve opcije ispravne. Tačno ili ne?

testirajte 7 jednostavnih pitanja sa više odgovora

13. Brzina procesorskog takta je:

A. broj binarnih operacija koje je izvršio procesor po jedinici vremena

B. broj generiranih impulsa u sekundi koji sinhronizuju rad računarskih čvorova

C. broj mogućih pristupa procesora RAM-u po jedinici vremena

D. brzina razmjene informacija između procesora i ulazno/izlaznih uređaja

14. Odredite minimum potreban set uređaji dizajnirani za rad računara:

A. Štampač, sistemska jedinica, tastatura

B. procesor, RAM, monitor, tastatura

C. procesor, streamer, hard disk

D. monitor, sistemska jedinica, tastatura

15. Šta je mikroprocesor?

A. integralno kolo, koji izvršava komande koje dolaze na njegov ulaz i kontroliše

Rad na kompjuteru

B. uređaj za pohranjivanje onih podataka koji se često koriste na poslu

C. uređaj za prikaz tekstualnih ili grafičkih informacija

D. alfanumerički izlazni uređaj

16. Interakcija korisnika sa softversko okruženje izvedeno korištenjem:

A. operativni sistem

B. sistem datoteka

C. Prijave

d) menadžer datoteka

17. Direktna kontrola softverski alati korisnik može izvršiti

Pomoć:

A. operativni sistem

B. GUI

C. UI

d) menadžer datoteka

18. Načini pohranjivanja podataka na fizičkom mediju određuje:

A. operativni sistem

B. aplikativni softver

C. sistem datoteka

d) menadžer datoteka

19. Grafičko okruženje koje prikazuje objekte i kontrole Windows sistema,

Dizajniran za praktičnost korisnika:

A. hardverski interfejs

b) korisnički interfejs

C. desktop

d) softverski interfejs

20. Brzina računara zavisi od:

A. Brzina procesorskog takta

B. Da li je štampač povezan ili ne

C. Organizacija interfejsa operativnog sistema

D. vanjski prostor za pohranu

Analog i diskretna slika. Grafičke informacije mogu biti predstavljene u analognom ili diskretnom obliku. Primjer analogne slike je slikarsko platno, čija se boja kontinuirano mijenja, i primjer diskretne slike, uzorka štampanog inkjet štampačem, koji se sastoji od pojedinačnih tačaka različitih boja. Analogno (ulje). Diskretno.

slajd 11 sa prezentacije "Kodiranje i obrada informacija". Veličina arhive sa prezentacijom je 445 KB.

Informatika 9 razred

sažetak druge prezentacije

"Algoritmi strukture grananja" - IF uslov, THEN akcija. Šta znamo. Struktura lekcije. Algoritam grananja. Pokrenite algoritam i popunite tabelu. Učenik koji osvoji od 85 do zaključno 100 bodova prolazi u drugi krug takmičenja. Unesite broj bodova i odredite da li je prošao u drugi krug. Naći najveći broj između a i b. Napišite program u programskom jeziku. Algoritam grananja je algoritam u kojem se, ovisno o uvjetu, izvodi jedan ili drugi slijed radnji.

„Stvaranje umjetne inteligencije“ – simulacijski pristup. Pristupi izgradnji sistema veštačke inteligencije. evolucioni pristup. Umjetna inteligencija. Može kohabitirati sa mnogim ljudima, pomažući u rješavanju ličnih problema. Strukturalni pristup. logičan pristup. Problemi tokom razvoja. Izgledi za razvoj i obim.

"Ciklični programi" - Cifra. Petlja s preduvjetom. Pronađite iznos. Petlja s postuvjetom. Ciklus s parametrom. Euklidov algoritam. Ciklični programi. Pronađite zbir prirodnih brojeva. Koncept ciklusa. Početna naknada. Tabela funkcija. Izračunati. Primjer. Razdjelnici. Informatika. Pronađite broj brojeva. Naći. Pronađite broj trocifrenih prirodnih brojeva. Trocifreni brojevi. Pronađite skup vrijednosti funkcije. Tablica konverzije dolara.

"Šta je e-mail" - pošiljalac. E-mail adresa. Istorija e-pošte. Pitanje elektronske pošte. Struktura pisma. Usmjeravanje pošte. Pismo. Email. Kopiraj. Datum. X mailer. Email. Kako to radi Email.

"Rad sa e-mailom" - E-mail adresa. Mailbox. Email protokol. mreža za dijeljenje datoteka. Razdvajanje adresa. Prednosti e-pošte. Klijenti e-pošte. Email Inventor. Adresa. Email. Softver za e-poštu. Kako e-mail funkcionira. Telekonferencija. Mail server. Dijeljenje datoteka.

"Obrada u Photoshopu" - Cool momci. Kako razlikovati lažnjak. Raster i vektorske slike. Uvod. Top mesta. Adobe program Photoshop. Retuširanje. Photoshop Contests. Podešavanje svjetline. Moji prijatelji. Praktični dio. Slični programi. Glavni dio. Dizajn. Neobične životinje. Montaža više slika.

Top Related Articles