change color of output graph

4 visualizaciones (últimos 30 días)
Anvinder  Singh
Anvinder Singh el 2 de Mzo. de 2016
Comentada: Anvinder Singh el 2 de Mzo. de 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.

Respuesta aceptada

Geoff Hayes
Geoff Hayes el 2 de Mzo. de 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 comentarios
Anvinder  Singh
Anvinder Singh el 2 de Mzo. de 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 el 2 de Mzo. de 2016
Yes, Anvinder. Just use any value between 0 and 255.

Iniciar sesión para comentar.

Más respuestas (2)

Image Analyst
Image Analyst el 2 de Mzo. de 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 comentario
Anvinder  Singh
Anvinder Singh el 2 de Mzo. de 2016
Thank you Image analyst ! That looks good to implement!

Iniciar sesión para comentar.


Muhammad Usman Saleem
Muhammad Usman Saleem el 2 de Mzo. de 2016
Editada: Muhammad Usman Saleem el 2 de Mzo. de 2016
Accept this answer if satisfy your question
try
plot(array1,array2,'k')%k stand for black color
for more reading,
  1 comentario
Anvinder  Singh
Anvinder Singh el 2 de Mzo. de 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..

Iniciar sesión para comentar.

Categorías

Más información sobre Red en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by