Segmentation par markov

Signaler
Messages postés
13
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
30 septembre 2005
-
Messages postés
24
Date d'inscription
mercredi 12 mai 2010
Statut
Membre
Dernière intervention
26 mai 2011
-
bonjour,

je cherche à faire une segmentation d'image par la méthode de Markov.
Est ce que quelqu'un a les codes ? Est ce que vous savez où je peux me
les procurer ?

Merci d'avance !
Anne-Lise

9 réponses

Messages postés
16
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
23 décembre 2014

Envoyer moi ton mail.
j'ai un projet avec c++ builder 6
sur la segmentation marcovient
Messages postés
16
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
23 décembre 2014

au
ghassir@gmail.com
Messages postés
1
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
2 mai 2008

salut mon email est [mailto:skysatorn@hotmail.com skysatorn@hotmail.com] 
je travail aussi sur ce type de pb mais c'est pour la detection de mouvement et exactement d'obtacle sur une route et avec matlab
Messages postés
1
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
2 mai 2010

Moi aussi je cherche à faire une segmentation d'image par la méthode de Markov.
mon email boukiboudi@hotmai.fr
Messages postés
1
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
20 mai 2010

bonjour,
je cherche à faire une segmentation de texte d'une image j'ai besoin de code en Matlab.
si quelqu'un peut m'aider pour mon projet "segmentation d'un texte Multi-langue ", voilà mon email said-maths@hotmail.fr
Merci d'avance !
Said
Messages postés
24
Date d'inscription
mercredi 12 mai 2010
Statut
Membre
Dernière intervention
26 mai 2011

Segmentation des images par la théorie des champs de Markov. Cette segmentation est effectuée par l’algorithme EM. Cet algorithme a l’avantage de calculer l’image segmentée ainsi que les paramètres du modèle proposé.
Le but est de chercher la classe la plus probable au sens de la probabilité a posteriori, obtenue par la maximisation de P(x/y) ou bien la minimisation d’une fonctionnelle d’énergie U(x/y) Les méthodes utilisées sont de type déterministe comme l’ICM ou de type stochastique comme le recuit simulé. Malheureusement
Messages postés
24
Date d'inscription
mercredi 12 mai 2010
Statut
Membre
Dernière intervention
26 mai 2011

algorithme ICM
i)
initialisation de l'algorithme ICM : il s'agit de fournir à l'algorithme ICM une
image classifiée et d'estimer les paramètres a de la classification initide.
Les paramètres a correspondent à la moyenne et à la variance de chaque classe. Classifications par algorithme K means
ii)
A partir d'une configuration initiale, les étapes suivantes chaque pixel :
a) Pour chaque classe :
1) calcul de l'énergie U(x/y) (équation );
2) calcul de l'énergie U(x) (équation );
3) calcul de l'énergie globale U(x,y) = U(x/y) + U(x) .
b) Recherche de la classe d'énergie minimale.
iii) On affecte l'étiquette de la classe, trouvée dans l'étape b), au site courant.
iv) S'il y a eu des changements sur l'image classifiée et si le nombre de changements est supérieur à un seuil défini par I'utiliçateur, on retourne a l'étape (ii). Sinon, l'algorithme ICM s'arrête.
Messages postés
24
Date d'inscription
mercredi 12 mai 2010
Statut
Membre
Dernière intervention
26 mai 2011

code L’algorithme du K-means avec matlab

function [mask,mu,v,p]=kmeans(ima,k)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%
% Input:
% ima: grey color image
% k: Number of classes
% Output:
% mask: clasification image mask
% mu: vector of class means
% v: vector of class variances
% p: vector of class proportions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% check image
z1=ima;
ima=double(ima); % afficher image conne valeur double
copy=ima; % copy les valeur dimage ima

ima=ima(:); % afficher image ima comme vectorize
mi=min(ima); % min vecteur ima
ima=ima-mi+1; % is ima image aolre le min=0 donc ima=ima+1;
m=max(ima); %max vecteur ima
s=length(ima); %les nombre de element de vecteur

% create image histogram

h=Frequence(ima); %calcule Fréquence d'image
x=find(h);% is h(i)!=0 alors x(i)=i
h=h(x);
x=x(:);% Valeurs xi
h=h(:);

% initiate parameters

mu=(1:k)*m/(k+1);%(1:k) vecteur 1->k
v=ones(1,k)*m;% ones vecteur [1 1 1 ->1 k]*m
p=ones(1,k)*1/k;

% start process

sml = mean(diff(x))/1000; %calcule la moyne diff(x)
while(1)
% Expectation
prb = distribution(mu,v,p,x);% resulta sortire ci matrice
scal = sum(prb,2)+eps; %la somme de matrice
loglik=sum(h.*log(scal));% lasomme deus produit de matrice h et log(scal)

%Maximizarion
for j=1:k
pp=h.*prb(:,j)./scal; %Répétition ni
p(j) = sum(pp);% N
mu(j) = sum(x.*pp)/p(j); % X=1/N(somm(nixi))
vr = (x-mu(j));% xi-X
v(j)=sum(vr.*vr.*pp)/p(j)+sml;% V=1/N(somm ni(care(xi-X)))
end
p = p + 1e-3;
p = p/sum(p);

% Exit condition
prb = distribution(mu,v,p,x);
scal = sum(prb,2)+eps;
nloglik=sum(h.*log(scal));
if((nloglik-loglik)<0.0001) break; end;


end


% calculate mask
mu=mu+mi-1; % recover real range
s=size(copy);
mask=zeros(s);

for i=1:s(1),
for j=1:s(2),
for n=1:k
c(n)=distribution(mu(n),v(n),p(n),copy(i,j));
end
a=find(c==max(c));
mask(i,j)=a(1);
end
end



function y=distribution(m,v,g,x)
x=x(:);
m=m(:);
v=v(:);
g=g(:);
for i=1:size(m,1)
d = x-m(i);
amp = g(i)/sqrt(2*pi*v(i));
y(:,i) = amp*exp(-0.5 * (d.*d)/v(i));
end


function[h]=Frequence(datos)
datos=datos(:);%remlasse datos mateci avec vecteur
ind=find(isnan(datos)==1);
datos(ind)=0;
ind=find(isinf(datos)==1);
datos(ind)=0;
tam=length(datos);
m=ceil(max(datos))+1;
h=zeros(1,m);
for i=1:tam,
f=floor(datos(i));
if(f>0 & f<(m-1))
a2=datos(i)-f;
a1=1-a2;
h(f) =h(f) + a1;
h(f+1)=h(f+1)+ a2;
end;
end;
h=conv(h,[1,2,3,2,1]);
h=h(3:(length(h)-2));
h=h/sum(h);
Messages postés
24
Date d'inscription
mercredi 12 mai 2010
Statut
Membre
Dernière intervention
26 mai 2011

Un problème posé en imagerie multivariée est l’hétérogénéité des informations portée sur les images et donc la distribution des classes.

Segmentation des images individuellement en entrée (images univariées) par la théorie des champs de Markov. Cette segmentation est effectuée par l’algorithme ICM. Cet algorithme a l’avantage de calculer l’image segmentée ainsi que les paramètres du modèle proposé

Le but est de chercher la classe la plus probable au sens de la probabilité a posteriori, obtenue par la maximisation de P(x/y) .ou bien la minimisation d’une fonctionnelle d’énergie U(x/y).
U(x/y) dépend de plusieurs paramètres qu’on doit déterminer. Pour palier à ce problème, nous avons utilisé l’algorithme ICM pour calculer le champ des classes (segmentation).
Cet algorithme se déroule de façon itérative en deux étapes jusqu’à la convergence :
1. Une étape de modélisation des champ des observations p(x/y) et des classes p(x) .
2. Une étape d’estimation des paramètres incluant une phase d’optimisation de la probabilité a posteriori . par algorithme ICM .


initialisation de l'algorithme ICM : il s'agit de fournir à l'algorithme ICM une
image classifiée et d'estimer les paramètres a de la classification initide.
Les paramètres a correspondent à la moyenne et à la variance de chaque classe. Classifications par algorithme K means

la loi gaussienne

La densité de probabilité conditionnelle P(a\K) peut être modélisée par une loi gaussienne. Telle que :
P(a_s\K)=1/√(2πδ_k^2 ) e^(((a_s-μ_k))/(2δ_k^2 )) (2.10)
Avec : δ_k^2 est la variance de la classe k.