numberOfColorChannels = 1 for a gray scale image, =3 for an RGB image or volumetric gray scale image, and >3 for multi-spectral images or higher dimensional arrays.
The size of your image is 289 x 318, as returned by the size command. Why do you think that the size is 256*256? A grayscale image can be of any size, only some of them are of size 256 x 256. The range of values are from 0 to 255, for a uint8 type image, so each pixel can take one from 256 different values. But that's the value of a pixel and has nothing to do with the size.
Best Answer