function Res=ODI(ImVT,ImSeg,fond,contour) % % 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. dTH=5; n=1; Res=0; [a,b]=find(ImVT==contour & ImSeg==contour); Nand=length(a); [a,b]=find(ImVT==contour); Ni=length(a); [a,b]=find(ImSeg==contour); Na=length(a); %texte=strcat('Nombre de pixels contour VT: ',int2str(Ni)); %disp(texte); %texte=strcat('Nombre de pixels contour Image segmentée: ',int2str(Na)); %disp(texte); %texte=strcat('Nombre de pixels communs: ',int2str(Nand)); %disp(texte); %texte=strcat('Nombre de pixels sursegmentés: ',int2str(Na-Nand)); % No %disp(texte); %texte=strcat('Nombre de pixels soussegmentés: ',int2str(Ni-Nand)); % Nu %disp(texte); [M,L]=find(ImVT==contour); TailleVT=length(M); ContVT=[M,L]; [Y,Z]=find(ImSeg==contour & ImVT~=contour); No=length(Y); ContNo=[Y,Z]; for i=1:No min=(ContVT(1,1)-ContNo(i,1))^2+(ContVT(1,2)-ContNo(i,2))^2; for j=1:TailleVT if (((ContVT(j,1)-ContNo(i,1))^2+(ContVT(j,2)-ContNo(i,2))^2)-1) min=sqrt(min); Res=Res+(min/dTH)^n; else disp('Erreur anormale'); end; end; if (No>0) Res=1/(No)*Res; else Res=-1*Res; end; %disp(Res);