l'image de fond

fr       en

Traitements d'Images en Niveau de Gris

L'Inversion

Méthode

Dans cette section, nous allons faire une inversion sur une image. Le calcul est assez simple puisqu'il suffit de rendre les pixels sombres claires et vice versa. Afin de donner une équation mathématique juste, nous faisons :

inversion

exemple si une image sur k = 8 donc 256 niveau de gris, le blanc qui est de 255 passe à zéro, 254->1, 253->2 ...

Programme

clear all; close all;

[filename, pathname] = uigetfile({'*.jpg;*.tif;*.PNG;*.gif;*.bmp','All Image Files';...
          '*.*','All Files' },'mytitle',...
          'C:\Work\myfile.jpg')
x = imread(filename);
% image sur un plan
if (length(size(x))>2)
    x=x(:,:,1);% on prend une seul plan image noir et blanc chaque plan sont egaux
end
% nombre de bit
info = whos('x');
if strcmp(info.class,'uint8')
    k=8;
elseif strcmp(info.class,'uint16')
    k=16;
elseif strcmp(info.class,'uint32')
    k=32;
elseif strcmp(info.class,'uint64')
    k=64;
end
 
%taille de la matrice
[ligne colonne]=size(x);
% on crée une matrice résultat de la même cast que l'image
inverse= zeros(ligne,colonne);
if strcmp(info.class,'uint8')
    inverse=uint8(inverse);
elseif strcmp(info.class,'uint16')
    inverse=uint16(inverse);
elseif strcmp(info.class,'uint32')
    inverse=uint32(inverse);
elseif strcmp(info.class,'uint64')
    inverse=uint64(inverse);
end
% algorithme de l'inversion
 for i=1:ligne
     for j=1:colonne
         inverse(i,j) = 2^k - x(i,j);
     end
 end
 % on affiche le résultat
 figure(1)
 subplot(121)
 imshow(x)
 subplot(122)
 imshow(inverse)

Exemple

Nous obtenons le résultat suivant :
inversion d'une image

Copyright © 2010-2014, tous droits réservés, contact : operationpixel@free.fr