You are on page 1of 4

Procesarea imaginilor este un domeniu al inteligenei artificiale care se ocup cu reprezentarea, reconstituirea, clasificarea, recunoasterea si analiza imaginilor cu ajutorul

calculatorului. Sursa de provenien a imaginilor poate fi un dispozitiv cum ar fi o camer video, un scanner, captor radar, dar poate fi la fel de bine si o ecuatie matematic, un ansamblu de date statistice etc. Exist doua motive principale pentru care se apeleaza la procesarea imaginilor: mbunatatirea calittii unei imagini avnd drept scop o mai bun vizualizare pentru un operator uman. Aceasta poate nsemna: reducerea zgomotului si a altor defecte care pot fi prezente n imagine (datorate, de exemplu, dispozitivului de captura), evidentierea unor zone de interes prin modificarea luminozittii, a contrastului, accentuarea muchiilor etc.; extragerea de informatii dintr-o imagine, informatii care pot reprezenta intrarea pentru un sistem automat de recunoastere si clasificare. Aceste informatii pot fi: diferite distante si relatii dintre obiectele prezente n imagine, momente statistice, parametri geometrici (arie, perimetru, circularitate), coeficienti Fourier etc. Exemple clasice de aplicatii pentru procesarea imaginilor includ: recunoasterea caracterelor, recunoasterea amprentelor, prelucrarea imaginilor medicale, a imaginilor satelit. Egalizarea de histograma este unul din cei mai importanti algoritmi epntru procesarea imaginilor. Imbunatateste contrastul si scopul egalizarii de histograma este obtinerea unei histograme uniforme. Aceasta tehnica poate fi folosita pe o imagine intreaga sau numai pe o parte de imagine.

Egalizarea de histograma nu va "turti" o histograma. Algoritmul redistribuie distributia de intensitate. Daca o histograma are maxime si minime, va avea si dupa egalizare maxime si minime, dar intensitatea lor va fi redusa. Egalizarea de histograma poate fi o "imprastiere" a histogramei initiale.

OPERATII

Calculul histogramei Calculul sumei de normalizare a histogramei Transformarea inmaginii de intrare in imagine de iesire Prima operatie se face prin numararea valorii fiecarui pixel.

In a doua operatie se va folosi un tablou in care se va memora suma tuturor histogramelor.In acest tablou, elementul 1 va contine suma histogramelor elementelor 1 si 0, Elementul 255 va contine suma histogramelor elementelor 255, 254, 253......, 1, 0. Acest tablou este apoi normalizat prin inmultirea fiecarui element cu valoarea maxima a unui pixel raportat la numarul de pixeli (255/lungime*inaltime).

Rezultatul celei de a doua operatii se numeste LUT care se foloseste pentru a transforma imaginea de la intrare.

Imbunatatirea contrastului se realizeaza printr-un algoritm special. O posibila implementare a algoritmului de egalizare a histogramei este prezentat in continuare. void ImageViewer :: egalizeaza_histograma( void ) { int i, j; int width, height; int h[ 256 ]; for( i = 0; i < 256; i++ ) h[ i ] = 0; width = image.width(); height = image.height(); //calcularea histogramei imaginii for( i = 0; i < width; i++ )
2

for( j = 0; j < height; j++ ) { QRgb pixel; pixel = image.pixel( i, j ); int nivel_gri = qRed( pixel ); h[ nivel_gri ]++ ; } //calcularea histogramei cumulative double hc[ 256 ]; hc[ 0 ] = h[ 0 ]; for( i = 1; i < 256; i++ ) hc[ i ] = hc[ i - 1 ] + h[ i ]; QImage imag_eq( width, height, 32, 0, QImage::IgnoreEndian ); //egalizarea histogramei for( i = 0; i < width; i++ ) for( j = 0; j < height; j++ ) { QRgb pixel = image.pixel( i, j ); int nivel = qRed( pixel ); int nivel_nou = (int)( ( hc[nivel] - hc[0] ) * 255 / ( width*height - hc[0] ) ); imag_eq.setPixel( i, j, qRgb( nivel_nou, nivel_nou, nivel_nou ) ); } image = imag_eq; pm = image; update()

You might also like