Traitement d’images sous MATLAB PLAN Lire, afficher et sauvegarder une image Vérifier l’image dans la mémoire Egualisation d’histogramme Ouverture morphologique Soustraction d’images Ajustement du contraste d’une image Seuillage d’une image Etiquetage des composants connexes Séléction et affichage des pixels d’une zone d’intéret ROI Propriétés statistiques des objets Conversion des type d’images Multiframe Image Arrays Arithmétique des images Transformations spatiales des images Filtrage des images
Lire une image Lire une image Validation du format graphique (bmp, hdf, jpeg, pcx, png, tiff, xwd) Sauvegarder l’image dans un tableau clear, close all I = imread(‘pout.tif`); [X, map] = imread(‘pout.tif’);
Afficher une image imshow(I)
Sauvegarde d’une image Validation de l’extension Ecriture de l’image sur le disque imwrite(I2, ’pout2.png’); imwrite(I2, ‘pout2.png’, ‘BitDepth’, 4);
Vérifier l’image dans la mémoire < Name, Size, Bytes, Class > whos Name Size Bytes Class ans 291x240 69840 uint8 array Le total est 69840 elements utilisant 69840 octets uint8 [0, 255] uint16 [0, 65535] double [0, 1]
Egualisation d’histogramme Histogramme: distribution des intensités figure, imhist(I) Egualiser l’image (contraste) I2 = histeq(I); figure, imshow(I2) figure, imhist(I2)
Egualisation d’histogramme (cont.) Histogramme égalisé
Egualisation d’histogramme (cont.) Image originale Image après l’égalisation
Ouverture morphologique Suppression des objets qui ne peuvent pas contenir un élément structurant Estimation de luminance de l’arrière plan clear, close all I = imread(‘rice.tif’); imshow(I) background = imopen(I, strel(‘disk’, 15)); imshow(background)
Ouverture morphologique (cont.)
Soustraction d’images Création d’un arrière plan uniforme I2 = imsubtract(I, background); figure, imshow(I2)
Ajustement du contraste d’une image stretchlim computes [low hight] to be mapped into [bottom top] I3 = imadjust(I2, stretchlim(I2), [0 1]); figure, imshow(I3)
Seuillage d’une image Création d’une image binaire seuillée Calculer un seuil pour convertir une image d’intensité en une image binaire L’application du seuillage crée une image binaire level = graythresh(I3); bw = im2bw(I3, level); figure, imshow(bw)
L’application du seuillage sur l’image (cont.)
Etiquetage des composants connexes Détermine le nombre d’objets dans une image Précision (taille des objets, approximation de l’arrière-plan , parametre de connectivié, les objets en chevauchement) [labeled, numObjects] = bwlabel(bw, 4); numObjects {= 98} max(labeled(:))
Séléction et affichage des pixels d’une zone d’intéret ROI Séléction intéractive grain = imcrop(labeled) Création du Colormap RGB_label = label2rgb(labeled, @spring, ‘c’, ‘shuffle’); imshow(RGB_label); rect = [15 25 10 10]; roi = imcrop(labeled, rect)
Propriétés des Objets Mesure des propriétés des objets graindata = regionprops(labeled, ‘basic’) graindata(51).Area {296} graindata(51).BoundingBox {142.5 89.5 24.0 26.0} graindata(51).Centroid {155.3953 102.1791} Création d’un vecteur contenant une seule propriété pour chaque objet allgrains = [graindata.Area]; whos
Propriétés statistiques des objets max(allgrains) { 695 } Return le label du composant selon la taille biggrain = find(allgrains == 695) { 68 } Moyenne des tailles des grains mean(allgrains) { 249 } Histogramme (#bins) hist(allgrains, 20)
Propriétés statistiques des objets(cont.)
Conversion des type d’images dither gray2ind grayslice im2bw ind2gray ind2rgb mat2gray rgb2gray rgb2ind
Multiframe Image Arrays Meme taille, #plans, colormap Sauvegarder des images dans un tableau multiframe A = cat(4, A1, A2, A3, A4, A5) Extraire une image (frames) d’un tableau multiframe FRM3 = MULTI(:, :, :, 3) Affivher l’image imshow(MULTI(:, :, :, 5))
Arithmétique des images imabsdiff imadd imcomplement imdivide imlincomb immultiply imsubtract
Addition d’images Eclairsissement d’une image I = imread(‘rice.tif’); J = imread(‘cameraman.tif’); K = imadd(I, J); imshow(K) Eclairsissement d’une image RGB = imread(‘flowers.tif’); RGB2 = imadd(RGB, 50); subplot(1, 2, 1); imshow(RGB); subplot(1, 2, 2); imshow(RGB2);
Addition d’images(cont.)
Addition d’images(cont.)
Soustraction d’images Arrière plan d’une scène rice = imread(‘rice.tif’); background = imopen(rice, strel(‘disk’, 15)); rice2 = imsubtract(rice, background); imshow(rice), figure, imshow(rice2);
Soustraction d’images(cont.)
Multiplication d’images Mise à l'échelle : multiplier par une constante (Eclaircir >1, assombrir <1) Preserve un contraste relatif I = imread(‘moon.tif’); J = immultiply(I, 1.2); imshow(I); figure, imshow(J)
Multiplication d’images(cont.)
Division d’images (Ratioing) I = imread(‘rice.tif’); background = imopen(I, strel(‘disk’, 15)); Ip = imdivide(I, background); imshow(Ip, [])
Division d’images (cont.)
Système de coordonnés Coordonnées pixels Coordonnées spatiales Unité discrète (Entier) (r, c) = (1, 1) Coordonnées spatiales Unité continue (x, y) = (0.5, 0.5) 123
Transformations spatiales Mappage des emplacements des pixels d'une image d'entrée vers de nouveaux emplacements dans une image de sortie Redimentionnement (Resizing) Rotation Recadrage (Cropping)
Redimentionnement d’images Change la taille d’une image I = imread(‘ic.tif’); J = imresize(I, 1.25); K = imresize(I, [100 150]); figure, imshow(J) figure, imshow(K)
Redimentionnement d’images (cont.)
Rotation d’images Pivoter une image par un angle en degrés I = imread(‘ic.tif’); J = imrotate(I, 35, ‘bilinear’); imshow(I) figure, imshow(J)
Rotation d’images (cont.)
Recadrage d’images Extraire une partie rectangulaire de l'image. imshow ic.tif I = imcrop;
Filtrage d’images Cet exemple ajoute le bruit de sel et de poivre à une image, puis restaure l'image à l'aide de medfilt2. I = imread('eight.tif'); J = imnoise(I,'salt & pepper',0.02); K = medfilt2(J); imshow(J), figure, imshow(K)
Filtrage d’images