El processament digital d'imatges és l'ús d'un computador digital per processar imatges mitjançant un algorisme. Al ser una subcategoria del processament digital de senyals, el processament digital d'imatges té molts avantatges en comparació amb el processament analògic d'imatges. Això permet tenir un rang més ample d'algorismes que poden ser aplicats a les dades d'entrada i es poden evitar problemes com la creació de soroll i distorsió durant aquest processament digital. Des que les imatges poden ser definides en dos dimensions (encara que poden ser més), el processament digital d'imatges pot ser modelats en la forma de sistemes multidimensionals. La generació i desenvolupament del processament digital d'imatges estan afectats principalment per tres factors: el primer, el desenvolupament de computadors; el segon, el desenvolupament de les matemàtiques (especialment en la creació i millora de la teoria de matemàtica discreta); i el tercer, la demanda per un ampli rang d'aplicacions en la ciència medioambiental, de l'agricultura, militar, industrial i mèdica ha augmentat.
Transformació digital d'imatges La transformació digital d'imatges permet millorar la qualitat o resaltar detalls que no es veuen a simple vista amb claredat. Quan es transforma una imatge, s'obté una imatge B a partir d'una imatge A, encara que poden ser més d'una imatge, i la forma que es modifica A per convertir-se en B determina el tipus de transformació.
Transformacions puntuals En el cas de les transformacions puntuals, cada píxel de la imatge transformada s'obtenen a partir del píxel de la imatge original amb les mateixes coordenades, sense tenir en compte els píxels veïns d'aquest. És a dir, aquestes transformacions es realitzen punt a punt de la imatge.
Existeixen diversos tipus de transformacions puntuals:
Transformacions puntuals simples Umbralització LUT Transformacions lineals Imatge negativa Maximització del contrast Transformacions no lineals Logaritme Exponencial Operacions lògiques Equalització
Transformacions puntuals simples Aquest tipus de transformacions treballen només amb una imatge original, on cada píxel es considera un element individual, sense mirar els veïns. S'aplica una funció que depèn exclusivament del valor del píxel.
La transformació puntual transforma la imatge en funció del nivell de grisos dels seus píxels.
Umbralització La umbralització, també conegut com binarització o threshold, consisteix en convertir la imatge digital en una imatge en blanc i negre, de tal manera que es preservin les propietats escencials de la imatge.
Existeixen dos tipus de umbralitzacions:
Umbral simple. Els punts amb un nivell d'intensitat major o igual a un cert umbral t reben el nivell màxim i la resta, el nivell mínim.cap|miniatura|233x233px|Umbral simplecap|miniatura|Representació umbral simple Umbral doble. S'escull un interval [t1, t2] que es porta al màxim.cap|miniatura|251x251px|Umbral doblecap|miniatura|Representació umbral doble
LUT La LUT defineix un vector, el qual els seus valors indiquen la sortida esperada per cada nivell d'entrada. Els valors dels píxels de la imatge original indexen els nous valors. És a dir, els valors dels píxels de la imatge original corresponen a un índex d'un vector, de manera que els valors dels píxels de la imatge transformada seran els valors d'aquests índexs.
Transformacions lineals Es transforma una imatge I amb un rang de valors determinat en una nova imatge I' = g(I) amb un rang, on g és una funció lineal.
Hi ha dos transformacions lineals:
Negatiu. Consisteix en invertir el valor dels nivells de grisos de la imatge original, de forma que, en els extrems, el blanc passarà a ser negre i el negre, blanc. La seva funció de transformació és: , on I és la imatge original i x i y són les coordenades del píxel. Maximització del contrast. Consisteix en aplicar una transformació lineal de tal manera que els valors ocupin tot el rang possible, produint-se un "estirament" de l'histograma. La seva funció de transformació és: .cap|miniatura|373x373px|Exemple de maximització del contrast
Transformacions no lineals Les transformacions lineals modifiquen el rang de la imatge. En canvi, les transformacions no lineals modifiquen els valors dins del rang de la imatge.
Existeixen dos tipus de transformacions no lineals:
Logarítmiques. Realça els píxels foscos sense saturar els píxels brillants. La seva transformació és: .cap|miniatura|Representació logaritme Exponencials. Realça els píxels brillants sense saturar els píxels foscos. La seva transformació és: .cap|miniatura|Representació exponencial
Operacions lògiques Es realitza un tipus d'operació lògica entre els bits de cada píxel i els d'una certa màscara binària. Els diferents tipus d'operacions lògiques que es troben són: AND, OR, NOT, XOR. Per exemple, l'AND lògic entre una imatge i la constant 11110000 realitza una recuantització uniforme d'una imatge de 256 nivells a únicament 16 nivells. cap|miniatura|264x264px|Exemple operació lògica AND D'altres operacions lògiques amb bits són els desplaçaments a l'esquerra i a la dreta de bits, que és equivalent al producte i divisió, respectivament, pel producte de 2.
Equalització L'equalització persegueix que tots els nivells de grisos tinguin la mateixa freqüència d'aparició. La manera d'aconseguir-ho és amb una LUT que ajusti l'histograma acumulat de la imatge original al rang de nivells que hi ha. La transformació és: . cap|miniatura|293x293px|Exemple Equalització Existeixen variacions de l'equalització:
Equalització local. Es realitza la mateixa operació en una finestra centrada en cada píxel. Equalització logarítmica. S'eleva l'histograma acumulat a una constant, canviant la forma de l'histograma final.
Transformacions aritmètiques En les transformades puntuals es realitza una transformació píxel a píxel d'una imatge. Aleshores, en el cas de les transformacions aritmètiques, la imatge transformada és el resultat d'aplicar, punt a punt, un operador, que pot ser una operació lògica o aritmètica, entre dues imatges.
,
on ○ és qualsevol operació lògica o aritmètica, com pot ser:
Suma Resta Producte Divisió AND, OR, XOR
Filtres Els filtres digitals són utilitzats per:
Suavitzar una imatge, és a dir, reduir les variacions d'intensitat entre els píxels veïns. L'eliminació del soroll, modificant els píxels amb un nivell d'intensitat molt diferent al del seus veïns. D'aquesta manera es redueix la informació no desitjada que contamina la imatge. Relaçar una imatge amb l'augment de les variacions d'intensitat. La detecció de les vores, de manera que es detecta aquells píxels on es produeixen un canvi brusc d'intensitat. Per tant, els filtres són operacions que s'apliquen als píxels d'una imatge digital per tal d'optimitzar-la, emfatitzar certa informació o aconseguir un efecte especial.
Els filtres digitals poden ser classificats en:
Filtres en el domini de l'espai. Filtres en el domini de freqüències.
Filtres en el domini de l'espai Els filtres en el domini de l'espai són aquells filtres que treballen directament sobre els píxels d'una imatge. Les operacions dels filtres espacials es definieixen en un entorn dels píxels veïns del punt a transformar. És a dir, per aplicar una operació sobre un punt (x,y), s'ha de tenir en compte l'entorn d'aquest, que seran els veïns.
Els filtres en el domini espacial es poden classificar en:
Filtres lineals. Filtres no lineals.
Els filtres lineals consisteixen en passar per cada un dels píxels d'una imatge amb una màscara i per cada un dels píxels es realitza una suma ponderada dels valors dels píxels veïns pels pesos de la màscara. L'operació que es realitza donada un a imatge f(x,y) i una màscara w(x,y) és la següent:
El procés de passar per cada un dels píxels i realitzar aquestes sumes ponderades rep el nom de convolució.
Existeixen diferents filtres lineals, com poden ser: +Filtres linealsUtilitatImplementació MatlabExempleSuavitzatRedueix les variacions locals d'intensitat, encara que es pot adquirir soroll.h = ones(2*M+1, 2*N+1)/((2*M+1, 2*N+1)); im2 = imfilter(im, h, 'conv'); %M i N són paràmetres que són assignats per l'usuari. %im és la imatge original.center|miniatura|Imatge originalcenter|miniatura|Imatge amb M=2 i N=2VoresSenyala les variacions locals d'intesitat, quan aquestes són deguts als contorns dels objectes.h = 0.5*[1 0 -1]; h = h'; im2 = conv2(double(im), h); %im és la imatge original.center|miniatura|Imatge originalcenter|miniatura|Detecció de voresFiltre gaussiàS'utilitza per emborronar imatges i eliminar el soroll.im2 = imgaussfilt(im); %im és la imatge original.center|miniatura|Imatge originalcenter|miniatura|Imtage amb filtre gaussià Els filtres no lineals no poden ser expressats amb convolucions ni amb manipulacions del contingut freqüencial, és a dir, els valors d'entrada produeixen valors de sortida que no són translacions lineals.
Els diferents filtres no lineals que hi ha són, entre altres:
Els filtres d'ordre de prioritat, els quals hi ha de tres tipus: Filtre de mediana: Selecciona el valor que queda al mig dels valors dels píxels veïns ordenats que estan dins d'una màscara. Per tal d'eliminar el soroll salt-and-pepper (el soroll salt-and-pepper és que alguns píxels s'apaguen de manera aleatòria i d'altres s'encenen). Filtre de màxim: Selecciona el valor més gran dels diferents veïns, els quals estan ordenats dins d'una màscara. Aquest filtre és molt útil per l'eliminació del soroll pepper, que són els píxels que estan apagats. Filtre de mínim: És el mateix procediment que en el cas del filtre de màxim, però seleccionant el valor mínim. Per tant, elimina el soroll salt, que són els píxels que s'encenen. Punt mitjà de l'entorn de veïnatge: La imatge es genera a base de trobar la mitjana dels píxels màxim i mínim del conjunt formats pels píxels veïns d'un punt, reduint la nitidesa i eliminant el soroll uniforme. Alpha-Media de l'entorn de veïnatge: La nova imatge es genera trobant la mitjana dels píxels veïns sense tenir en compte ni el màxim ni el mínim. S'utilitza per tractar imatges amb soroll gaussià i aleatori. Mitjana geomètrica de l'entorn de veïnatge: Es realitza el producte dels valors dels píxels elevats a . Aquest filtre treballa també molt bé el soroll gaussià.
Filtres en el domini de freqüències En el cas de filtres en el domini de freqüències, el processament de la imatge es fa a partir d'una transformada de la imatge, el qual la més utilitzada és la transformada de Fourier. Un cop s'ha tractat aquesta imatge, es realitza la transformada inversa per tal d'obtenir els resultats.
Els filtres en el domini de la freqüència s'utilitzen principalment per eliminar altes o baixes freqüències d'una imatge, de tal manera que es suavitzaria la imatges o realçar o detectar vores.
Els pasos que es segueixen per tal d'eliminar aquestes freqüències són: miniatura|605x605px|Etapes del processament d'imatges en el domini de la freqüència
Es multiplica la imatge d'entrada per .
Es transforma la imatge en el seu domini de freqüència.
Es multiplica aquest domini per un filtre de freqüència. Això és el que es coneix com a Teorema de la Convolució, on F(u,v) és el domini de freqüència i H(u,v), el filtre a aplicar. Es calcula la transformada inversa del resultat.
Existeixen diversos tipus de filtres en el domini de la freqüència, que el que es fa és deixar passar més o menys components freqüencials. Aleshores, els diferents filtres són: miniatura|Tipus de filtres en el domini de freqüències Filtres passa baix: Atenuen o eliminen els components d'alta freqüència en el domini de Fourier sense alterar les baixes freqüències, és a dir, "deixa passar" les freqüències baixes. Filtres passa alt: Atenuen o eliminen els components de baixa freqüència en el domini de Fourier sense alterar les altes freqüències, és a dir, "deixa passar" les freqüències altes.