24.3 Convoluția prin separabilitate

Aceasta este o tehnică pentru o convoluție rapidă, atât timp cât PSF este separabilă. O PSF se spune că este separabilă dacă poate fi ruptă în două semnale unidimensionale: o proiecție verticală și una orizontală. Figura 24-5 prezintă un exemplu de imagine separabilă, PSF pătrată. În mod specific, valoarea fiecărui pixel din imagine este egală cu punctul corespunzător din proiecția orizontală înmulțită cu punctul corespunzător din proiecția verticală. În formă matematică:

Ecuația 24-1 Separarea imaginii.
O imagine este separabilă dacă ea poate fi descompusă în proiecții orizontală și verticală.

unde x [r,c] este imaginea bidimensională și vert [r] & horz [c] sunt proiecțiile unidimensionale. Evident, majoritatea imaginilor nu satisfac această cerință. De exemplu, pillbox nu este separabilă. Există, totuși, un infinit număr de imagini separabile. Acest lucru poate fi înțeles generând proiecții orizontale și verticale arbitrare și găsirea imaginii care le corespunde. De exemplu, Figura 24-6 ilustrează acest lucru cu profile care sunt exponențiale pe ambele părți. Imaginea care corespunde acestor profiluri este găsită apoi în Ec. 24-1. Atunci când este afișată, imaginea apare ca o formă de diamant care descrește exponențial la zero, pe măsură ce distanța de la origine crește.

Figura 24-5 Separarea unei PSF dreptunghiulară.

O PFS se zice că este separabilă dacă poate fi descompusă în profile orizontal și vertical. PSF-urile separabile sunt importante deoarece pot fi făcute convoluții rapide.

Figura 24-6 Crearea unei PSF separabile.

Un număr infinit de PSF separabile pot fi generate prin definirea de proiecții arbitrare, și apoi calcularea funcției bi-dimensionale care corespunde acestora. În acest exemplu, profilele sunt alese ca exponențiale bilaterale, conducând la o PSF în formă de diamant.

Figura 24-7 Separarea Gaussian-ului.

Gaussian-ul este doar PSF care este simetrică circular și separabilă. Aceasta o face un kernel de filtru comun în procesarea imaginii.

În majoritatea sarcinilor de procesare a imaginilor, PSF-ul ideal este simetrică circular, cum ar fi pillbox. Chiar dacă imaginile digitalizate sunt de obicei stocate și procesate în format dreptunghiular de rânduri și coloane, se dorește modificarea imaginii la fel în toate direcțiile. Aceasta ridică întrebarea: există o PSF care este simetrică circular și separabilă? Răspunsul este da, dar există doar una, Gaussian. După cum se arată în figura 24-7, o imagine gaussiană bidimensională are proiecții care sunt și ele gaussiene. Imaginea și proiecția Gaussian au aceeași abatere standard.

Pentru o convoluție a imaginii cu un nucleu de filtru separabil, se face convoluția fiecărui rând din imagine cu proiecția orizontală, rezultând o imagine intermediară. Apoi, se face convoluția fiecărei coloane a acestei imagini intermediare cu proiecția verticală a PSF. Imaginea rezultată este identică cu convoluția directă a imaginii originale și a kernelului de filtru. Dacă doriți, faceți mai întâi convoluția coloanelor și apoi rândurile; rezultatul este același.

Convoluția unei imagini N×N cu un nucleu de filtru M×M necesită un timp proporțional cu N2M2. Cu alte cuvinte, fiecare pixel din imaginea de ieșire depinde de toți pixelii din kernelul filtrului. Comparativ, convoluția prin separabilitate necesită doar un timp proporțional cu N2M. Pentru nuclee de filtrare cu lățime de sute de pixeli, această tehnică va reduce timpul de execuție cu un factor de sute.

Lucrurile pot deveni și mai bune. Dacă sunteți dispus să utilizați o PSF dreptunghiulară (fig.24-5) sau o PSF exponențială pe ambele părți (fig.24-6), calculele sunt chiar mai eficiente. Acest lucru se datorează faptului că convoluțiile unidimensionale sunt filtrul medie mobilă (capitolul 15) și filtrul bidirecțional cu un singur pol (capitolul 19). Ambele filtre unidimensionale pot fi efectuate rapid prin recursiune. Aceasta are ca rezultat un timp de convoluție a imaginii proporțional cu numai N2, complet independent de dimensiunea PSF. Cu alte cuvinte, o imagine poate fi în convoluție cu o PSF cât mai mare, după cum este necesar, cu doar câteva operațiuni întregi per pixel. De exemplu, convoluția unei imagini de 512×512 necesită doar câteva sute de milisecunde pe un computer personal. E rapid! Nu vă place forma acestor două kerneluri de filtrare? Faceți convoluția imaginii cu unul dintre ele de mai multe ori pentru a aproxima o PSF Gaussian (garantată de Teorema Limitei Centrale, Capitolul 7). Aceștia sunt algoritmi excelenți, capabili de a elimina succesul de la fălcile eșecului. Ei merită să îi reținem.

Secțiunea următoare: Exemplu de PSF largă: Aplatizarea iluminării