Look up table lut et his togram
-
Upload
ayssar-serhan -
Category
Documents
-
view
907 -
download
3
description
Transcript of Look up table lut et his togram
Chapitre II
Les operations ponctuelles
Le mécanisme des opérations ponctuelles est le plus simple en traitement d'images. A partird'une image source, le résultat est établi
Exemples d'opérations ponctuelles
Opérations booléennes
valeur (convertie en binaire) du pixel :
• Non (Not)
• Et (And)
• Non-et (Nand/And not)
• Ou (Or)
• Non-ou (Nor/Not or)
• Ou exclusif (Xor)
• Non-ou exclusif (Xnor)
Opérations arithmétiques
pixel, chaque pixel étant un tableau de trois valeurs correspondant aux trois couleurs Rouge, Vert, Bleu. On peut alors appliquer une à chaque valeur du tableau de tableaux. Par exemple:
• Négation (inverse le signe des valeurs de l'image)• Valeur absolue (la valeur absolue des valeurs de l'image)
-----------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
Les operations ponctuelles
Le mécanisme des opérations ponctuelles est le plus simple en traitement d'images. A partird'une image source, le résultat est établi point par point
Mécanisme de l'opération ponctuelle
Exemples d'opérations ponctuelles :
Opérations booléennes: C'est une fonction logique qui est appliquée sur la
valeur (convertie en binaire) du pixel :
et (Nand/And not)
ou (Nor/Not or)
ou exclusif (Xnor)
Opérations arithmétiques :On peut transcrire une image en un tableau de pixel, chaque pixel étant un tableau de trois valeurs correspondant aux trois couleurs Rouge, Vert, Bleu. On peut alors appliquer une fonction à chaque valeur du tableau de tableaux. Par exemple:
Négation (inverse le signe des valeurs de l'image) Valeur absolue (la valeur absolue des valeurs de l'image)
-----------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
Le mécanisme des opérations ponctuelles est le plus simple en traitement point par point
qui est appliquée sur la
peut transcrire une image en un tableau de pixel, chaque pixel étant un tableau de trois valeurs correspondant aux trois
arithmétique
-----------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
• Addition (additionne les valeurs d'une image aux valeurs d'une seconde image)
• Soustraction (soustrait les valeurs d'une image aux valeurs d'une seconde image)
• Multiplication: augment le contrast dans l'image. • Division : reduit le contrast dans l'image. • Maximum: determine la valeur maximale d'intensite • Minimum: determine la valeur minimale d'intensite
Look-up Table (LUT): est un simple tableau qui utilisent la valeur actuel du pixel comme indice de tableau. La nouvelle valeur (valeur de sortie) est l'élément de tableau indexé par cet indice. Le meilleur avantage de la LUT est que LUT réduit calculs inutiles et répétés.
Comment faire pour utiliser: 1. Fixer la valeur d'entrée à 0 pour l'une négative, et à 255 pour une débordante. 2.L' Utilisation de la mémoire buffer d'entrée comme un buffer de sortie permet d'économiser l'espace mémoire en supprimant l'allocation de mémoire inutile pour la sortie.
-----------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
est un terme informatique désignant une appelé tableau de correspondances), qui permet d'associer des valeurs. Elle se comporte un peu comme une ses entrées et du contenu de la table.
Histogramme d
Histogramme est une Les intensités des pixelsd'occurrences pour chaque
Mécanisme de
-----------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
un terme informatique désignant une table de correspondanceappelé tableau de correspondances), qui permet d'associer des valeurs. Elle se comporte un peu comme une table de vérité, et désigne sa sortie en fonction de ses entrées et du contenu de la table.
d'image:
bâtons simple qui est pour les intensitésdes pixels sont tracées le long de l'axe des x pour chaque intensité sont tracées le long de l'axe des y
Mécanisme de calcule d'histogramme
-----------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
table de correspondance (aussi appelé tableau de correspondances), qui permet d'associer des valeurs. Elle se
, et désigne sa sortie en fonction de
les intensités de pixels. et le nombre
l'axe des y.
-----------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
%programme matlab close all clc im=imread( 'test1.tif'imshow(im); %afficher l'imagehisto=zeros(1,256);
for i=1:size(im,1) for j=1:size(im,2) histo(im(i,j))=histo(im(i,j))+1;
end end figure; bar(histo); %afficher l'histogramme
Egalisation d'histogramme:opération ponctuelle basée sur une analyse de l'histogramme des niveaux de gris de l'image source; elle corrige automatiquement la répartionde gris pour utiliser la totalité de la dynamique des niveaux de grL'histogramme des niveaux de gris est obtenu par dénombrement des niveaux de gris contenudans une image et tracé du graphe discret de ces valeurs en fonction du niveau de gris. Le graphe est une suite de raies; lorsque tous les niveaux de gris sont représentés (absence de "trous" dans la représentation), le graphe suit la forme du graphe de l'image avant sa digitalisation.
Image d'entree
Histogramme egalisee image de sortie ---------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
pour calculer l'histogramme
'test1.tif' ); %lire l'image %afficher l'image
histo=zeros(1,256); %vecteur vide i=1:size(im,1)
j=1:size(im,2) histo(im(i,j))=histo(im(i,j))+1; %calcule %d'histograme
%afficher l'histogramme
Egalisation d'histogramme: L'égalisation d'histogramme est une opération ponctuelle basée sur une analyse de l'histogramme des niveaux de gris de l'image source; elle corrige automatiquement la répartionde gris pour utiliser la totalité de la dynamique des niveaux de gris.L'histogramme des niveaux de gris est obtenu par dénombrement des niveaux de gris contenudans une image et tracé du graphe discret de ces valeurs en fonction du niveau de gris. Le graphe est une suite de raies; lorsque tous les
résentés (absence de "trous" dans la représentation), le graphe suit la forme du graphe de densité de probabilité du niveau de gris de l'image avant sa digitalisation.
Image d'entree histogramme d'image
Histogramme egalisee image de sortie
-----------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
%calcule d'histograme
L'égalisation d'histogramme est une opération ponctuelle basée sur une analyse de l'histogramme des niveaux de gris de l'image source; elle corrige automatiquement la répartion des niveaux
is. L'histogramme des niveaux de gris est obtenu par dénombrement des niveaux de gris contenudans une image et tracé du graphe discret de ces valeurs en fonction du niveau de gris. Le graphe est une suite de raies; lorsque tous les
résentés (absence de "trous" dans la représentation), le du niveau de gris de
histogramme d'image
Histogramme egalisee image de sortie
--------------------------------Année 2011 Ayssar SERHAN
L'objectif de l'égalisation d'histogramme est de ramener l'histogramme des niveaux de gris à un histogramme plat qui traduit une équiprobabilité des différents niveaux de gris. Étapes d'égalisation d'histogramme : 1-Calculer l'histogramme. 2-Calculer la somme normalisée de l'histogramme. 3-Transformer l'image d'entrée à l'image de sortie.
On definir la constant de normalisation par: � =���������� ����������
����������� �������
function [result]=equa_hist(buffer) close all clc hist=zeros(1,256); result=buffer; figure; imshow(buffer); %calcule d'histogramme for i=1:size(buffer,1) for j=1:size(buffer,2) hist(buffer(i,j))=hist(buffer(i,j))+1; end end % calcule de l'histogram cumulatif et de de LUT sum=0; scale=(255/(size(buffer,1)*size(buffer,2)));% constant C lut= zeros(1,size(buffer,1)*size(buffer,2)); cum_hist=hist; for i=1:256 sum=sum+hist(i); cum_hist(i)=sum; lut(i)=(scale*sum)+0.5; end figure; bar(cum_hist); % transformation de l'image d'entree en image de so rtie a l'aide de LUT for i=1:size(buffer,1) for j=1:size(buffer,2) result(i,j)=lut(buffer(i,j)); end end figure; imshow(result); -----------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
figure; bar(hist); hist=zeros (1,256);
% calcule d'histograme pour l'image de sortiefor i=1:size(buffer,1) for j=1:size(buffer,2) hist(result(i,j))=hist(result(i,j))+1;
end end figure bar(hist) end
Étirement d’histogramme
Cette transformation surcontraste d’une image. Pour cela, il convient d’augmenter sur l’histogramme (cf. figure du haut) l’intervalle [a,b] de répartition des niveaux de gris de l’image d’entrée « Ie ». On parle alors d’étirement d’hivue de la transformation (cf. figure du bas), un étirement maximal est réalisé dès lors que la répartition des niveaux de gris de l’image de sortie « Is » occupe l’intervalle maximal possible [0, Max]. Typiquement pour une image dontniveaux sont codés sur 8 bits, l’intervalle [a, b] de Ie sera étiré jusqu’à l’intervalle [0, 255] pour Is.
-----------------------------------------------------------------------------------------------------------------Année 2011
(1,256); % calcule d'histograme pour l'image de sortie
i=1:size(buffer,1) j=1:size(buffer,2)
hist(result(i,j))=hist(result(i,j))+1;
tirement d’histogramme(contrast stretching):
Cette transformation sur l’histogramme a pour objet l’augmentation du contraste d’une image. Pour cela, il convient d’augmenter sur l’histogramme (cf. figure du haut) l’intervalle [a,b] de répartition des niveaux de gris de l’image d’entrée « Ie ». On parle alors d’étirement d’histogramme. Du point de vue de la transformation (cf. figure du bas), un étirement maximal est réalisé dès lors que la répartition des niveaux de gris de l’image de sortie « Is » occupe l’intervalle maximal possible [0, Max]. Typiquement pour une image dontniveaux sont codés sur 8 bits, l’intervalle [a, b] de Ie sera étiré jusqu’à l’intervalle [0, 255] pour Is.
----------------------------------------------------------------------------------------------------------------- Ayssar SERHAN
l’histogramme a pour objet l’augmentation du contraste d’une image. Pour cela, il convient d’augmenter sur l’histogramme (cf. figure du haut) l’intervalle [a,b] de répartition des niveaux de gris de
stogramme. Du point de vue de la transformation (cf. figure du bas), un étirement maximal est réalisé dès lors que la répartition des niveaux de gris de l’image de sortie « Is » occupe l’intervalle maximal possible [0, Max]. Typiquement pour une image dont les niveaux sont codés sur 8 bits, l’intervalle [a, b] de Ie sera étiré jusqu’à
-----------------------------------------------------------------------------------------------------------------Ayssar SERHAN
L'etirement d'histogramme Subit la fonction suivant:
������������� =������������� − intensite!"#"!$%
�&'�&(�'������ − �&'�&(�'������
× 255
255 represente la valeur maximale d'intensite dans un image quantifier sur 8 bits. function [result]=cont_str(buffer) close all ; clc; hist=zeros(1,256); result=buffer; min=1; max=255; figure; imshow(buffer); %calcule d'histogramme for i=1:size(buffer,1) for j=1:size(buffer,2) hist(buffer(i,j))=hist(buffer(i,j))+1; end end % calcule de LUT sum=0; lut=zeros(1,256); for i=1:256 if (hist(i)) min=i; break; end end for i=256:-1:1 if (hist(i)) max=i; break; end end lut(1:min)=1; lut(max:256)=255; scale=255/(max-min); -------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
for i=min:max lut(i)=(i-min)*scale; end for i=1:size(buffer,1) for j=1:size(buffer,2) result(i,j)=lut(buffer(i,j))+1; end end figure; imshow(result); figure; bar(hist); hist=zeros(1,256); % calcule d'histograme pour l'image de sortiefor i=1:size(buffer,1) for j=1:size(buffer,2) hist(result(i,j))=hist(result(i,j))+1; end end figure bar(hist) end
Image d'entrée histogramme de l'Image
Image sortie histogramme de de sortie----------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
result(i,j)=lut(buffer(i,j))+1;
% calcule d'histograme pour l'image de sortie
hist(result(i,j))=hist(result(i,j))+1;
Image d'entrée histogramme de l'Image
Image sortie histogramme de de sortie
----------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN
Image d'entrée histogramme de l'Image d'entrée
Image sortie histogramme de de sortie
-------------------------------------------------------------------------------------------------------------Année 2011 Ayssar SERHAN