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 ...
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.
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.
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)
Copyright © 2010-2014, tous droits réservés, contact : operationpixel@free.fr