Filter löschen
Filter löschen

change color of output graph

4 Ansichten (letzte 30 Tage)
Anvinder  Singh
Anvinder Singh am 2 Mär. 2016
Kommentiert: Anvinder Singh am 2 Mär. 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.

Akzeptierte Antwort

Geoff Hayes
Geoff Hayes am 2 Mär. 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 Kommentare
Anvinder  Singh
Anvinder Singh am 2 Mär. 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 am 2 Mär. 2016
Yes, Anvinder. Just use any value between 0 and 255.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Image Analyst
Image Analyst am 2 Mär. 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 Kommentar
Anvinder  Singh
Anvinder Singh am 2 Mär. 2016
Thank you Image analyst ! That looks good to implement!

Melden Sie sich an, um zu kommentieren.


Muhammad Usman Saleem
Muhammad Usman Saleem am 2 Mär. 2016
Bearbeitet: Muhammad Usman Saleem am 2 Mär. 2016
  1 Kommentar
Anvinder  Singh
Anvinder Singh am 2 Mär. 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..

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Colormaps finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by