show an image as categorised
Mostrar comentarios más antiguos
I have an image with 3 layers (R,G,B). I want to show each layer as a cateogorised image as I can define the range of values in each category. I also want to add a legend as it show the range of values and the assigned color, a map scale (in kilometer) and geographical north direction. for eaxample I want to show the layer 1 as: 0.05-0.1>>blue 0.1-0.15>>green 0.15-0.2>>yellow 0.2-0.25>>red
Could you please help me about that?
Respuestas (2)
Walter Roberson
el 29 de Jun. de 2011
0 votos
Perhaps you could use contour() and supply the level list
9 comentarios
Hassan
el 29 de Jun. de 2011
Walter Roberson
el 29 de Jun. de 2011
To turn off the lines in contour(), pass the additional parameter 'none' as the linespec argument.
Hassan
el 29 de Jun. de 2011
Walter Roberson
el 29 de Jun. de 2011
It appears that 'none' is a later version than you or I are using. But you can use this:
[edges,chandle] = contourf(Myimg(:,:,1));
set(chandle,'LineStyle','none');
Hassan
el 29 de Jun. de 2011
Walter Roberson
el 29 de Jun. de 2011
[edges,chandle] = contourf(Myimg(:,:,1).', [0.1, 0.15, 0.2, 0.25]);
set(chandle,'LineStyle','none');
colorbar;
colormap([0 0 1; 0 1 0; 1 1 0; 1 0 0]);
annotation('arrow', [X1 X2],[Y1 Y2], 'HeadStyle', 'hypocycloid'); %with appropriate X and Y
I do not know if there is a good way to create a map scale with tick marks.
Hassan
el 30 de Jun. de 2011
Walter Roberson
el 30 de Jun. de 2011
Which direction does using Myimg(:,:,1) display relative to what you would like displayed?
Hassan
el 30 de Jun. de 2011
Sean de Wolski
el 29 de Jun. de 2011
0 votos
Perhaps you could convert it to be identical to a label image and then use label2rgb to show it?
6 comentarios
Hassan
el 29 de Jun. de 2011
Sean de Wolski
el 29 de Jun. de 2011
Yes. So set every pixel in each range to an integer monotonically increasing from 1. label2rgb sounds like exactly what you want!
Hassan
el 29 de Jun. de 2011
Sean de Wolski
el 29 de Jun. de 2011
Use hist on each channel reshaped to a vector; get the second output (the bin); reshape all three channels back into their beginning shape; set up some criteria on which bins make what values and then label based on the values.
Show us a better set of sample data and the expected results. Perhaps a 2x2x3 matrix and the criteria used to determine "category"
Hassan
el 29 de Jun. de 2011
Hassan
el 30 de Jun. de 2011
Categorías
Más información sobre Images en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!