MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Jjet Jumbo on 19 Nov 2012

Generate the following image by defining image matrix:

Red Green Blue Yellow Green.

B(1:100,1:100,1:100,1:00,1:3)=0; imshow (B) B(1:50,1:50,1) =1; B(51:100,51:100,2)=1; imshow(B)

I am trying to get a 3x3 with the specified colors; Red Green Blue Yellow Green. It's not working, it gives error.

*No products are associated with this question.*

Answer by Walter Roberson on 19 Nov 2012

B(1:100,1:100,1:100,1:00,1:3)=0 tries to define a 5 dimensional array in which the fourth dimension is empty. 1:00 is empty. Perhaps you meant 1:100 .

RGB matrices are 3 dimensional.

You may wish to use zeros() to initialize the matrix.

Answer by Image Analyst on 19 Nov 2012

Is this what you're looking for:

redChannel = zeros(100, 100, 'uint8'); greenChannel = zeros(100, 100, 'uint8'); blueChannel = zeros(100, 100, 'uint8'); redChannel(1:50,:) = 255; greenChannel(:, 1:50) = 255; blueChannel(51:100, 51:100) = 255; coloredImage = cat(3, redChannel, greenChannel, blueChannel); imshow(coloredImage)

Show 3 older comments

Walter Roberson on 20 Nov 2012

If you are going to use 0, 1, 2, then use a 2 dimensional matrix rather than a 3D matrix, and fill each location with a number indicating the color number that should go there (like paint-by-numbers.) Then after imshow(), use colormap() to put in place a colormap you created that maps between the color number and the RGB value that should be associated with that color.

Cesar on 2 Feb 2013

Can you please complete it to create the 3 X 3 image:

Red Yellow Green Green Blue

Image Analyst on 2 Feb 2013

Cesar, you can see my solution and the modifications to it to do what you want should be straightforward. Just change the row and column ranges.

## 0 Comments