23.7 Manipulare digitală

Una dintre problemele fotografierii pe suprafața unei planete este distorsiunea de la curbura formei sferice. De exemplu, să presupunem că folosiți un telescop pentru a fotografia o regiune pătrată în apropierea centrului unei planete, așa cum este ilustrat în figura 23-15a. După câteva ore, planeta se va roti pe axa sa, care apare ca în (b). Regiunea fotografiată anterior pare foarte distorsionată deoarece este curbată aproape de orizontul planetei. Fiecare dintre cele două imagini conține informații complete despre regiune, dar dintr-o perspectivă diferită. Este destul de obișnuit să dobândești o fotografie ca (a), dar chiar vrei ca imaginea să arate ca (b) sau invers. De exemplu, un satelit care cartografiază suprafața unei planete poate lua mii de imagini chiar de deasupra, ca în (a). Pentru a face o imagine privită natural a întregii planete, cum ar fi imaginea lui Venus în figura 23-1, fiecare imagine trebuie distorsionată și plasată în poziția corectă. Pe de altă parte, consideră un satelit meteorologic care privește un uragan care nu se află direct sub el. Nu există altă posibilitate decât să achiziționezi imaginea oblică, ca în (b). Imaginea este apoi convertită în modul în care ar apărea de sus, ca în (a).

Aceste transformări spațiale se numesc warping (deformări). Fotografia spațială este cea mai obișnuită utilizare pentru warping, dar există și altele. De exemplu, mulți detectori de imagine cu tuburi de vid au diferite cantități de distorsiune spațială. Aceasta include camere de vizionare nocturne utilizate de detectoarele militare și de raze X utilizate în domeniul medical. Deformarea digitală (sau dewarping,dacă preferați) poate fi utilizată pentru a corecta distorsiunea inerentă a acestor dispozitive. Artiștii efectelor speciale pentru filme doresc să distorsioneze imaginile. De exemplu, o tehnică numită morphing deformează treptat un obiect în altul pe o serie de cadre. Acest lucru poate produce iluzii, cum ar fi un copil care se transformă într-un adult sau un om care se transformă într-un vârcolac.

Warping ia imaginea originală (o matrice bidimensională) și generează o imagine deformată (o altă matrice bidimensională). Aceasta se face prin looping prin fiecare pixel în imaginea deformată și întrebând: Care este valoarea corespunzătoare a pixelului care ar trebui plasată aici? Având în vedere că rândul și coloana particulare sunt calculate în imaginea deformată, în imaginea originală există un rând și o coloană corespunzătoare. Valoarea pixelului din imaginea originală este transferată în imaginea deformată pentru a realiza algoritmul. În jargonul de procesare a imaginii, rândul și coloana cu care pixelul vine de la în imaginea originală se numește comes-from adress (adresa de unde vine). Transferarea fiecărui pixel din original în imaginea deformată este partea ușoară. Partea grea este calcularea adresei "come from" asociată cu fiecare pixel din imaginea deformată. Aceasta este de obicei o problemă pur matematică și poate deveni destul de implicată. Pur și simplu întinderea imaginii în direcția orizontală sau verticală este mai ușoară, implicând doar o multiplicare a numărului de rând și/sau coloană pentru a găsi adresa de la care vine.

Figura 23-15 Manipularea digitală a imaginii.

Cum se arată în (a), o vedere normală a unei mici secțiuni a unei planetei pare fără distorsiune relativă. În comparație, o vedere oblică prezintă distorsiune spațială semnificativă. Warping este tehnica de modificare a uneia din aceste imagini în cealaltă.

Una dintre tehnicile folosite la deformare este interpolarea subpixel. De exemplu, să presupunem că ați dezvoltat un set de ecuații care transformă o adresă de rând și coloană în imaginea deformată în adresa comes-from din imaginea originală. Considerați ce s-ar întâmpla când încercați să găsiți valoarea pixelului la rândul 10 și coloana 20 în imaginea deformată. Treceți informația: rând = 10, coloana = 20, în ecuațiile dvs. și apare: comes-from row = 20,2, comes-from column = 14,5. Punctul fiind, calculele dvs. vor utiliza probabil virgula mobilă și, prin urmare, adresele comes-from nu vor fi numere întregi. Cea mai ușoară metodă de utilizat este algoritmul cel mai apropiat vecin, adică rotunjirea adreselor la cel mai apropiat număr întreg. Acest lucru este simplu, dar poate produce un aspect foarte granular la marginea obiectelor în care pixelii pot apărea ușor deplasați.

Interpolarea biliniară necesită un efort mai mic, dar oferă imagini semnificativ mai bune. Figura 23-16 arată cum funcționează. Cunoașteți valoarea celor patru pixeli în jurul adresei fracționale, adică valoarea pixelilor din rândul 20 și 21 și coloanele 14 și 15. În acest exemplu, vom presupune că valorile pixelilor sunt 91, 210, 162 și 95. Problema este de a interpola între aceste patru valori. Acest lucru se face în două etape. Mai întâi, interpolați în direcția orizontală între coloanele 14 și 15. Aceasta produce două valori intermediare, 150,5 pe linia 20 și 128,5 pe linia 21. În al doilea rând, interpolați între aceste valori intermediare în direcția verticală. Aceasta produce valoarea pixelului interpolat biliniar de 139,5, care este apoi transferată la imaginea deformată. De ce interpolați în direcția orizontală și apoi pe direcția verticală în loc de invers? Nu contează; răspunsul final este același indiferent de ce ordine este folosită.

Figura 23-16 Interpolarea subpixelilor.

Interpolarea subpixelilor pentru manipulare digitală a imaginii este uzual realizată cu interpolare biliniară. Cum se arată în (a), două valori intermediare se calculează prin interpolare liniară în direcție orizontală. Valoarea finală este apoi găsită prin utilizarea interpolării liniare în direcție verticală între valorile intermediare. Cum se arată în ilustrația tri-dimensională din (b) această procedură definește unic toate valorile dintre cei patru pixeli cunoscuți la fiecare din colțuri.