Borrar filtros
Borrar filtros

Unsupervised evaluation of image segmentation

3 visualizaciones (últimos 30 días)
hamaimi sarah
hamaimi sarah el 16 de Ag. de 2011
Good evening, do you can give me a program that the evaluation of unsupervised image segmentation (region)? THANK YOU GREETING

Respuesta aceptada

Quattro
Quattro el 17 de Ag. de 2011
Dear Sarah,
Your question is not completely clear to me, but if I guess correctly what you mean I suggest to search in the MATLAB help for Cluster Analysis and to take a look at the 'silhouette plot' function.
Success, Q
  1 comentario
hamaimi sarah
hamaimi sarah el 29 de Ag. de 2011
I tried with this program and this is what I have as a result:
Function definitions are not permitted in this context.
Imdep= imread('imdep.bmp');
i=im2double(Imdep);
figure(1),imshow(i);
Imseg= imread('imseg.bmp');
i2=im2double(Imseg);
figure(2),imshow(i2);
function valeur= Inter_LN(Imdep,Imseg)
% Calcul du contraste inter-région de Lévine et Nazif
% pour une image bmp 8bits en niveaux de gris stockée sous la forme d'une matrice
% Imseg : matrice correspondant à l'image segmentée avec des valeurs allant de 1 à n pour les n régions segmentées
% Imdep : matrice correspondant à l'image originale
%
%
% Utilitaires pour l'évaluation de la segmentation d'images
% Toolbox matlab (version 5.3)
%
% (c) Laboratoire de Vision et Robotique (UPRES EA 2078)
% ENSI de Bourges - Université d'Orléans
%
% Sébastien Chabrier : sebastien.chabrier@ensi-bourges.fr
%
% Si vous utilisez cette toolbox, veuillez citer ce papier svp.
%
%S. Chabrier, B. Emile, C. Rosenberger, H. Laurent,
%"Unsupervised performance evaluation of image segmentation",
%Special Issue on Performance Evaluation in Image Processing,
%EURASIP Journal on Applied Signal Processing, pages 1-12, 2006.
valeur=0;
NBCLASS=double(max(max(Imseg)));
moyenne=zeros(1,NBCLASS);
contraste=zeros(1,NBCLASS);
contraste_croise=zeros(NBCLASS);
perimetre=zeros(1,NBCLASS);
frontiere=zeros(NBCLASS);
aire=zeros(1,NBCLASS);
for k=1:NBCLASS
[region_k]=find(Imseg==k);
aire(k)=length(region_k); %nb de pixels de la région k
if (aire(k)>0)
moyenne(k)=sum(sum(Imdep(region_k)))/aire(k);
else
moyenne(k)=0;
end;
Imbin=zeros(size(Imseg));
Imbin(region_k)=ones(size(region_k));
contour_k=find((double(dilate(Imbin,ones(3)))-double(Imbin))==1);
for l=1:NBCLASS
if (contour_k)
M=find(Imseg(contour_k)==l);
if (M)
frontiere(k,l)=length(M);
else
frontiere(k,l)=0;
end;
else
frontiere(k,l)=0;
end;
end;
perimetre(k)=length(contour_k);
if (perimetre(k)==0)
frontiere(k,:)=0;
else
frontiere(k,:)=frontiere(k,:)/perimetre(k);
end;
end;
for k=1:NBCLASS
for l=1:NBCLASS
if (moyenne(k)+moyenne(l)==0)
contraste_croise(k,l)=0;
else
contraste_croise(k,l)=abs(moyenne(k)-moyenne(l))/(moyenne(k)+moyenne(l));
end;
end;
contraste(k)=frontiere(k,:)*contraste_croise(k,:)';
end;
%[contraste_croise]
%pause;
valeur=(aire*contraste')/sum(aire);
disp(valeur)

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 17 de Ag. de 2011
Often this is done by constructing an ROC Curve. ROC means "Receiver Operating Characteristic" http://en.wikipedia.org/wiki/Receiver_operating_characteristic. Basically it's the plot of the true positive rate against the false positive rate. If you have various segmentation algorithms that you want to evaluate, you need to know the "ground truth" - in other words the "right" answer or what a perfect segmentation would give. This could simply be your expert opinion as to what's right. Then you see how many pixels the algorithms got right and how many they got wrong and plot them. This will let you evaluate/compare the different algorithms you used to do your segmentation. Do some internet research for more info on ROC curves. There are ROC files in the File Exchange http://www.mathworks.com/matlabcentral/fileexchange/?term=ROC
  14 comentarios
hamaimi sarah
hamaimi sarah el 8 de Sept. de 2011
the benefits of calculating inter-region contrast Levine and Nazif
Walter Roberson
Walter Roberson el 8 de Sept. de 2011
In general terms, the program you gave the code for reads in two images and displays them on the screen, and then stops.
I not understand the Levine and Nazif reference. Are you now asking that someone give you an overview of how a different program works? If so then you would need to post the code or a link to it.
If you are hoping for an explanation of the theory behind a published paper, then that is something you should probably talk about with a professor, or at least raise the matter in a forum dedicated to image processing theory. This forum is dedicated to answering questions about MATLAB.

Iniciar sesión para comentar.

Categorías

Más información sobre Read, Write, and Modify Image en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by