colour image segmentation using k means
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    FIR
      
 el 16 de En. de 2013
  
    
    
    
    
    Respondida: Spandan Tiwari
    
 el 11 de Oct. de 2013
            I have a rgb image and have converted into hsv colour space,with k=2,now i want to segment the image as shown below,please tell what process to perform next
0 comentarios
Respuesta aceptada
  Thorsten
      
      
 el 16 de En. de 2013
        I = imread('./../../Downloads/planes.png');
I = im2double(I(1:320, 1:478, :));
HSV = rgb2hsv(I);
H = HSV(:,:,1); H = H(:);
S = HSV(:,:,2); S = S(:);
V = HSV(:,:,3); V = V(:);
idx = kmeans([H S V], 2);
imshow(ind2rgb(reshape(idx, size(I,1), size(I, 2)), [0 0 1; 0 0.8 0]))
3 comentarios
  Walter Roberson
      
      
 el 17 de En. de 2013
				
      Editada: Walter Roberson
      
      
 el 17 de En. de 2013
  
			[0 0 1; 0 0.8 0] is a color table with two entries: bright blue, and medium green. If you can come up with the RGB shade you want, change the 0 0.8 0 to that RGB triple.
If you have 5 clusters you would want 5 entries in the color table.
Más respuestas (2)
  Spandan Tiwari
    
 el 11 de Oct. de 2013
        Another alternative could be to use multi-level Otsu's thresholding to get the segmentation. You can use the function multithresh in the Image Processing Toolbox to do that.
Otsu's method and k-means clustering have equivalent objective functions (minimize within-class variance). The following paper discusses this relation:
Dongju Liu, Jian Yu, " Otsu Method and K-means ," Vol. 1, pp.344-349, Ninth International Conference on Hybrid Intelligent Systems, 2009.
0 comentarios
  Image Analyst
      
      
 el 16 de En. de 2013
        Assuming you set k=2 and did the kmeans like you said and is shown in this example, I don't know what you want to do next. You haven't said. The most typical thing to do next is to call bwlabel() or bwconncomp() followed by regionprops to make various measurements (such as area) on the regions. I can be more specific if you get more specific.
4 comentarios
  SAM
 el 11 de Oct. de 2013
				
      Editada: SAM
 el 11 de Oct. de 2013
  
			Assuming you set k=2 and did the kmeans like you said and is shown in this example, I don't know what you want to do next. You haven't said. The most typical thing to do next is to call bwlabel() or bwconncomp() followed by regionprops to make various measurements (such as area) on the regions. I can be more specific if you get more specific.
can you please tell me how can i calculate the area...
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





