How can I generate an image from a matrix?

The image would be 3 x 3 with the colors as shown below. The other can stay white.
Red Yellow
Green
Green Blue

2 Comments

Deleted questions are annoying.
I have restored the original text of this question.
Cesar, this question has a clear subject and an accepted answer, so it may be valuable to someone else in the future. If you have a good reason why it should be removed from MATLAB Answers, please flag the question, explain why it should be deleted, and an administrator or high-reputation contributor will consider deleting the question. Please do not simply edit your question away.

Sign in to comment.

 Accepted Answer

Red = [255 0 0];
Yellow = [0 255 255];
Green = [0 0 255];
Blue = [0 255 0];
Im = uint8(255) * ones(3,3,3,'uint8');
Im(1,1,:) = Red;
Im(1,3,:) = Yellow;
and so on.

2 Comments

Did not work. I continue on as shown below. The image is extremely small and the colors did not come out right. See below:
EDU>> Red = [255 0 0];
EDU>> Yellow = [0 255 255];
EDU>> Green = [0 0 255];
EDU>> Blue = [0 255 0];
EDU>> Im = uint8(255) * ones(3,3,3,'uint8');
EDU>> Im(1,1,:) = Red;
EDU>> Im(1,3,:) = Yellow;
EDU>> Im(2,2,:) = Green;
EDU>> Im(1,3,:) = Green;
EDU>> Im(3,3,:) = Blue;
EDU>> figure, imshow(Im)
EDU>> imshow(Im)
EDU>> figure, imshow(Im)
Of course the image is extremely small. You asked for a 3x3 image. 3 pixels by 3 pixels.
I should have used [255 255 0] for yellow.

Sign in to comment.

More Answers (2)

Hi, add the property 'notruesize' to imshow function :
imshow(Im,'notruesize');

3 Comments

The size is ok now but it is show Red Blue
Blue
Nothing Green
Background is white
I have no idea about the 255,0 arrangement for RGB, verify that repartition you gave,
i am trying to write a function for that purpose, i think you gave wrong colors .

Sign in to comment.

Here is your solution :
Red = [255 0 0];
Yellow = [255 255 0];
Green = [0 0 255];
Blue = [0 255 0];
Im = uint8(255) * ones(3,3,3,'uint8');
Im(1,1,:) = Red;
Im(1,3,:) = Yellow;
Im(2,2,:)=Blue;
Im(3,1,:)=Blue;
Im(3,3,:)=Green;
window=ones(100,100,'uint8');
RED=kron(Im(:,:,1),window);
GREEN=kron(Im(:,:,2),window);
BLUE=kron(Im(:,:,3),window);
FINAL=ones(300,300,3,'uint8');
FINAL(:,:,1)=RED;
FINAL(:,:,2)=GREEN;
FINAL(:,:,3)=BLUE;
figure, imshow(FINAL)
This a clever way to multiply 3x3x3 to get 300x300x3 .

Categories

Find more on Display Image in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!