Azzera filtri
Azzera filtri

change color of output graph

4 visualizzazioni (ultimi 30 giorni)
Anvinder  Singh
Anvinder Singh il 2 Mar 2016
Commentato: Anvinder Singh il 2 Mar 2016
I have a matlab plot (draw rectangle using matrix) but it shows the output in blue color whereas i want it in black color. How can i change it to black color ?
a = ones(256, 256, 3);
a(10:110,40:140)=0;
a(120:200,120:200)=0;
image(a)
I want the intensity of each square to be different actually. One should have intensity 100 and the other to be 300.

Risposta accettata

Geoff Hayes
Geoff Hayes il 2 Mar 2016
Anvinder - the problem is with the following two lines
a(10:110,40:140)=0;
a(120:200,120:200)=0;
Remember, a is a 256x256x3 matrix. In the above, you are only setting the Red component to zero. These two lines would be equivalent to
a(10:110,40:140,1)=0;
a(120:200,120:200,1)=0;
If you want the squares to be black, then you need to set all three components (red, green, and blue) to zero using
a(10:110,40:140,:)=0;
a(120:200,120:200,:)=0;
When I try the above, the pale blue squares are replaced with black ones.
  2 Commenti
Anvinder  Singh
Anvinder Singh il 2 Mar 2016
Thanks Geoff, This is awesome. I didnt think about the third component at all. One more query, If i need to vary the intensity of the squares to some other grayscale value then should i do it by replacing '0' in the equation above or do something else ?
Geoff Hayes
Geoff Hayes il 2 Mar 2016
Yes, Anvinder. Just use any value between 0 and 255.

Accedi per commentare.

Più risposte (2)

Image Analyst
Image Analyst il 2 Mar 2016
You can use an indexed image if you don't want an RGB image and want values of 0, 100, and 300, and want the 100 and 300 both to show up as black. Just set up a colormap and apply it.
a = zeros(256, 256);
a(10:110,40:140) = 100;
a(120:200,120:200) = 300;
imshow(a, []);
cMap = [1,1,1;0,0,0]
colormap(cMap);
colorbar
caxis([0, 100]);
  1 Commento
Anvinder  Singh
Anvinder Singh il 2 Mar 2016
Thank you Image analyst ! That looks good to implement!

Accedi per commentare.


Muhammad Usman Saleem
Muhammad Usman Saleem il 2 Mar 2016
Modificato: Muhammad Usman Saleem il 2 Mar 2016
Accept this answer if satisfy your question
try
plot(array1,array2,'k')%k stand for black color
for more reading,
  1 Commento
Anvinder  Singh
Anvinder Singh il 2 Mar 2016
plot(array1,array2,'k')%k stand for black color doesnt work for this plot. Why will i get blue plot in the first place when i give the value of the two rectangular matrices =0 ? Shouldnt it give a black rectangle ?
Is there a way to change the color of the rectangles i plot using matrix such that each rectangle can have different intensity..

Accedi per commentare.

Categorie

Scopri di più su Colormaps in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by