l'image de fond

fr       en

Traitements d'Images en Niveau de Gris

Le Filtre de Bruit par Moyenne

Le but de ce traitement est de pouvoir corriger des images bruitées. Nous ne pouvons l'appliquer que si nous possédons plusieurs images avec le même point de vue. Imaginez que vous fixez un appareil photo et que vous prenez une rafale de photos. Dans le cas où les images ont un bruit additif de type bruit blanc, nous pouvons les débruiter pour obtenir une image nette. Un bruit sur une image peut venir de plusieurs raisons : perturbations dues aux capteurs, à la transmission de l'image, erreurs sur les bits après digitalisations ...

L'ajout de Bruit

Pour cette étude, nous allons ajouter un bruit artificiel à une image et nous allons répéter l'opération pour obtenir plusieurs images bruitées. Comme nous avons affaire à un bruit blanc il est différent pour chaque image. Nous utilisons la fonction rand pour avoir un bruit uniformément réparti. Le bruit est réalisé comme suit :

bruit=uint8(round((rand(ligne,colonne)*erreur)-erreur/2));

Où erreur est l'erreur maximale ajoutée. Nous allons ensuite ajouter ce bruit aux images d'origine pour avoir des images bruitées. Le processus est répété un certain nombre de fois pour obtenir plusieurs images bruitées. Nous allons en faire 20.

La moyenne

Une fois les images bruitées en notre possession, nous allons faire la moyenne de tous les pixels se situant aux mêmes coordonnées. Autrement dit, tous les points de coordonnées (1,1) sont sommés puis divisés par le nombre d'images. Dans Matlab, c'est la fonction mean qui réalise ce calcul.

Programme

clear all; close all;

[filename, pathname] = uigetfile({'*.jpg;*.tif;*.PNG;*.gif;*.bmp','All Image Files';...
          '*.*','All Files' },'mytitle',...
          'C:\Work\myfile.jpg') % récuperation du chemin du fichier

x = imread(filename); % récuperation des données
if (length(size(x))>2)% si l image en niveau de gris est sur 3 composantes couleurs
    x=x(:,:,1);% on prend un seul plan
end

k=8;
[ligne colonne]=size(x);%taille de la matrice

%On fait 10 image bruité
image_bruit=uint8(zeros(ligne,colonne,10));
erreur=100;
nbimage=20;
for i = 1 : nbimage
    bruit=uint8(round((rand(ligne,colonne)*erreur)-erreur/2));
    image_bruit(:,:,i)= x+bruit;
end

moyenne = uint8(mean(image_bruit,3));

 figure(1)
 subplot(221)
 imshow(x)
 subplot(222)
 imshow(image_bruit(:,:,1))
 subplot(223)
 imshow(bruit)
 subplot(224)
 imshow(moyenne)

Exemple

moyenne de plusieurs images

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