Analyser la netteté d une image

Analyser la netteté d une image - Divers - Programmation

Marsh Posté le 01-12-2005 à 22:56:41    

Bonjour à tous,
 
Voila j essaye d analyser la netteté d une image à l'aide de matlab. je sais qu il existe deux methode l une basée sur l'analyse spectrale et l autre basée sur l'analyse de l'histograme ; j ai donc decidée de faire une etude comparant les deux.
 
J avoue avoir du mal a cerné la direction a prendre. Donc idées, suggestions ou des sites intéressant je suis preneur.
 
Merci d avance
 
Gen_Patton

Reply

Marsh Posté le 01-12-2005 à 22:56:41   

Reply

Marsh Posté le 02-12-2005 à 05:07:11    

Hum. Voici mon raisonnement :
 
"Image pas nette => Image floue <=> Image sans hautes fréquences"
donc comme (a => b) => (/a => /b), on a :
"Image avec des hautes fréquences => Image nette"
 
Après, il reste à définir à partir de quand tu as des hautes fréquences ; disons que tu dois pouvoir comparer une image par rapport à la même qui est floutée, mais après c'est à mon avis impossible pour deux images prises au hasard. Par exemple, un damier flou aura toujours plus de hautes fréquences qu'un carré uni pas flou.

Reply

Marsh Posté le 02-12-2005 à 10:41:32    

Cette question m'intéresse aussi, mais moi non plus, je n'ai pas de solution pour le moment. Mais cela ne fait pas longtemps que je cherche.
 
Il faut peut-être, en premier lieu, diviser le problème en définissant plusieurs types de netteté :
 
- flou : quand les couleurs se fondent trop les unes avec les autres, quand il n'y a que trop rarement des changements brutaux entre les couleurs de deux pixels adjacents,
 
- contraste insuffisant : quand les couleurs sont pales et proches du gris,
remède possible avec la formule color = 128 + Contrast * (old color - 128),
 
- pluie de grains : quand il y a des petits grains saleté,
 
- trop de carrés : quand l'image est pixelisée, elle présente des carrés qu'il est sans doute possible d'arrondir, ou d'adoucir.
 
Il y a peut-être d'autres types.  
Ensuite il faut trouver des idées pour traiter chaque problème.
Ce sujet a sans douté été traité plusieurs fois. J'ai trouvé plusieurs articles sur le traitement des images comme par exemple la série de Christian Graus, http://www.codeproject.com/cs/medi [...] ters11.asp mais il utilise essentiellement des matrices pour faire des filtres plutôt que des études statistiques avec des histogrammes.

Reply

Marsh Posté le 02-12-2005 à 13:39:36    

ok merci pour toutes ces idées, je vais me lancer a corps perdu dans ces nouvelles directions :D  
 
J'ai aussi demandé de l'aide à un ami a mon père qui a fait pas mal de travail sur les images, il va me filer des feuilles la-dessus ; des que je l'ai, je les scans et je les post.
 
Merci
 
Tchuss


Message édité par Gen_Patton le 02-12-2005 à 13:40:22
Reply

Marsh Posté le 02-12-2005 à 21:04:30    

Salut,
 
voila les documents que j ai recu
 
http://www.ephec.b-powers.org/EPHE [...] er0001.JPG
 
et  
 
http://www.ephec.b-powers.org/EPHE [...] er0002.JPG
 
donc je vais crois que je prendre une methode de chaque et essayer de les mettre sous matlab et en francais
 
here we goooo  :sol:
 
Tchuss
 
Gen_Patton
 

Reply

Marsh Posté le 04-12-2005 à 19:29:18    

Re,
 
pour ceux que ca intéresse , voila ce que j ai reussi a pondre pour l analyse avec l histogramme
 
 
%--------------------------------------%
% Récupération des images %
N = imread('milflou.jpg');
figure;
imshow(N);title('Image chargée');
 
% transforme les images en niveaux de gris %
N1=RGB2GRAY(N);
figure;
imshow(N1);title('Image en noir et blanc');
taille=size(N1);
 
H1=imhist(N1);
figure,imhist(N1);title('histogramme de l''image en niveaux de gris');
 
%niveau moyen de gris%
T1=mean(H1);  
T2=mean(N1);
ligne=0;
ligne=double(ligne);
for k=1:taille;
    ligne=N1(k,: );
    moy(1,k)=mean(ligne);
end;
T3=mean(moy);
 
 
% taille de l histogramme %
% A = niveau de gris (256) %
% B = nombre de fois que le niveau apparait dans l'image %
[A,B]=size(H1);
 
F=0;G=0;R=0;
for m=1:A;
    if m>T3
        G=(H1(m,1));
        G=G*m;
        F=F+G;
    else  
        R=R+1;
    end;
end;
 
F
 
%------------------------------------%
 
si vous avez des remarques ou si ca vous intéresse no problemo
 
Tchuss
 
Gen_Patton

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed