]> AND Private Git Repository - these_gilles.git/blob - THESE/codes/graphe/Ncut_9/demoNcutImage.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
11 oct
[these_gilles.git] / THESE / codes / graphe / Ncut_9 / demoNcutImage.m
1 function demoNcutImage;\r
2 % demoNcutImage\r
3\r
4 % demo for NcutImage\r
5 % also initialize matlab paths to subfolders\r
6 % Timothee Cour, Stella Yu, Jianbo Shi, 2004.\r
7 \r
8 disp('Ncut Image Segmentation demo');\r
9 \r
10 %% read image, change color image to brightness image, resize to 160x160\r
11 I = imread_ncut('jpg_images/3.jpg',160,160);\r
12 \r
13 %% display the image\r
14 figure(1);clf; imagesc(I);colormap(gray);axis off;\r
15 disp('This is the input image to segment, press Enter to continue...');\r
16 pause;\r
17 \r
18 %% compute the edges imageEdges, the similarity matrix W based on\r
19 %% Intervening Contours, the Ncut eigenvectors and discrete segmentation\r
20 nbSegments = 5;\r
21 disp('computing Ncut eigenvectors ...');\r
22 tic;\r
23 [SegLabel,NcutDiscrete,NcutEigenvectors,NcutEigenvalues,W,imageEdges]= NcutImage(I,nbSegments);\r
24 disp(['The computation took ' num2str(toc) ' seconds on the ' num2str(size(I,1)) 'x' num2str(size(I,2)) ' image']);\r
25 \r
26 \r
27 %% display the edges\r
28 figure(2);clf; imagesc(imageEdges); axis off\r
29 disp('This is the edges computed, press Enter to continue...');\r
30 pause;\r
31 \r
32 %% display the segmentation\r
33 figure(3);clf\r
34 bw = edge(SegLabel,0.01);\r
35 J1=showmask(I,imdilate(bw,ones(2,2))); imagesc(J1);axis off\r
36 disp('This is the segmentation, press Enter to continue...');\r
37 pause;\r
38 \r
39 %% display Ncut eigenvectors\r
40 figure(4);clf;set(gcf,'Position',[100,500,200*(nbSegments+1),200]);\r
41 [nr,nc,nb] = size(I);\r
42 for i=1:nbSegments\r
43     subplot(1,nbSegments,i);\r
44     imagesc(reshape(NcutEigenvectors(:,i) , nr,nc));axis('image');axis off;\r
45 end\r
46 disp('This is the Ncut eigenvectors...');\r
47 disp('The demo is finished.');\r
48 \r