How to create a gray scale image

Hi, i want to create a gray scale image in matlab so I write a matrix 5x7 lets say A=[0 0 0 0 0 0 0; 80 80 80 80 80 80 80;200 200 200 200 200 200 200; 110 110 110 110 110 110 110; 160 160 160 160 160 160 160;255 255 255 255 255 255 255] . Then i use the imshow command and I expect an image where every row has a different intensity, the first black, the last white and the others with intermediate values. Instead of that i get a picture where only the first row is black and the rest of them are white. what am i doing wrong?

 Accepted Answer

A is a double. Cast it to uint8:
imshow(uint8(A));
or else use [] if you want to keep A as a double:
imshow(A, []);

7 Comments

thanks a lot, it worked :) but what is actually difference between double and uint8 ?
A double is a 8 byte (64 bit number) that can represent a wide range of numbers, including those of fractional values. A uint8 is a 1 byte (8 bit) number that represents only integers in the range of 0 to 255.
maria
maria on 30 Nov 2013
Edited: maria on 30 Nov 2013
great, but even in that case matrix A has only integers. should't it be able to give me a grayscale image even though it's double?
It is a grayscale image - a floating point grayscale image. But it's not an integer class . It's a double class that happens to have only integers in it, but it's still a double. Look:
A=[0 0 0 0 0 0 0; 80 80 80 80 80 80 80;200 200 200 200 200 200 200; 110 110 110 110 110 110 110; 160 160 160 160 160 160 160;255 255 255 255 255 255 255]
whos A
A 6x7 336 double
but my matrix represents a filter, and i want to impose it in an image. should i convert it to uint8 or is it fine if it is double?
It's fine if it's a double. You'll get more accuracy that way. You only need to convert it to an integer if you want to do certain things, like store it in a standard image format.
oh ok, thank you so much for your help :)

Sign in to comment.

More Answers (0)

Categories

Asked:

on 29 Nov 2013

Commented:

on 1 Dec 2013

Community Treasure Hunt

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

Start Hunting!