필터 지우기
필터 지우기

Unsupervised evaluation of image segmentation

조회 수: 3 (최근 30일)
hamaimi sarah
hamaimi sarah 2011년 8월 16일
Good evening, do you can give me a program that the evaluation of unsupervised image segmentation (region)? THANK YOU GREETING

채택된 답변

Quattro
Quattro 2011년 8월 17일
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
hamaimi sarah
hamaimi sarah 2011년 8월 29일
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)

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2011년 8월 17일
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
hamaimi sarah
hamaimi sarah 2011년 9월 8일
the benefits of calculating inter-region contrast Levine and Nazif
Walter Roberson
Walter Roberson 2011년 9월 8일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Read, Write, and Modify Image에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by