Académique Documents
Professionnel Documents
Culture Documents
Tp-1
Matlab est capable de lire et de décoder les fichiers images JPEG, TIFF, BMP, PNG, HDF, PCX ou
XWD. Une image sous Matlab est représentée sous forme d'une matrice. Avant de traiter une image
dans Matlab, il faut la lire et décoder son format afin de la transformer en une matrice de valeurs.
close all;
clear all;
clc;
img = imread('lena_gray.tif');
imshow(img);
figure;
imagesc(img);
colormap('gray');
L'accès à un élément particulier d'une image est indexé par le nom et la position de cet élément. Par
exemple, pour l’image img ci-dessus, on peut récupérer les valeurs ou les modifier aisément. Le
point (i,j) est appelé pixel (picture cell), sa valeur I(i,j) réelle traduit le degré de luminosité de l’image
au point (i,j) : On l’appelle niveau de gris de l’image au point (i,j) (i : numéro des lignes et j : numéro
des colonnes).
p = img(50,100)
p = uint8
60
imshow(p);
2. Récupérer le quart haut droit de l’image lena_gray.tif et le stocker dans la variable imgQuart.
[m, n] = size(img)
m = 512
n = 512
Exercice 2: La palette
Créez une matrice I de taille N×N avec N=256 dont le terme général est I(i,j) = j. Le point (i,j) est
appelé pixel (picture cell), sa valeur I(i,j) réelle traduit le degré de luminosité de l’image au point (i,j) :
On l’appelle niveau de gris de l’image au point (i,j).
N = 256;
I = zeros(N,N);
for i = 1:N
for j = 1:N
I(i,j) = j;
end
end
figure;
image(I);
colormap('gray');
palette = colormap('gray');
imshow(palette);
a = rand(256,1);
palette_g = [a, a, a];
imshow(palette_g);
6. Afficher de nouveau I.
figure;
imagesc(I);
colormap(palette_g);
palette_c = rand(256,3);
figure;
imagesc(I);
colormap(palette_c);
8. Conclure sur le fonctionnement et le rôle de la palette.
L'utilisation d'une palette de couleurs permet de standardiser les couleurs utilisées dans un projet
graphique, de garantir la cohérence visuelle et parfois de réduire la taille des fichiers image. Par
exemple, dans une image indexée, chaque pixel est associé à un indice dans la palette plutôt qu'à
une valeur RVB spécifique.
Pour calculer sur les images, il faut les convertir en entier ou en double. Trouvez un moyen pour
convertir une image en double.
img = imread("lena_color.tif");
R = img;
B = R;
G = R;
subplot(1,3,1);
R(:, :, [2 3]) = 0;
imshow(R);
subplot(1,3,2);
G(:, :, [1 3]) = 0;
imshow(G);
subplot(1,3,3);
B(:, :, [1 2]) = 0;
imshow(B);
2. Convertissez l’image couleur lena_color.tif en niveaux de gris.
img = rgb2gray(img);
figure;
imagesc(img);
colormap('gray');
Exercice 4: L’histogramme
- les opérations sur les images (format uint8 ou uint16) nécessite de les convertir en double.
figure, imhist(img);