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 ?
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
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
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
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.
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(:);
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);
% 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
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.