Main Content


Convert image to 8-bit unsigned integers



J = im2uint8(I) converts the grayscale, RGB, or binary image I to uint8, rescaling or offsetting the data as necessary.

If the input image is of class uint8, then the output image is identical. If the input image is of class logical, then im2uint8 changes true-valued elements to 255.

J = im2uint8(I,'indexed') converts the indexed image I to uint8, offsetting the data if necessary.


collapse all

Create an array of data type uint16.

I = reshape(uint16(linspace(0,65535,25)),[5 5])
I = 5x5 uint16 matrix

       0   13653   27306   40959   54613
    2731   16384   30037   43690   57343
    5461   19114   32768   46421   60074
    8192   21845   35498   49151   62804
   10923   24576   38229   51882   65535

Convert the array to data type uint8.

I2 = im2uint8(I)
I2 = 5x5 uint8 matrix

     0    53   106   159   213
    11    64   117   170   223
    21    74   128   181   234
    32    85   138   191   244
    43    96   149   202   255

Input Arguments

collapse all

Input image, specified as a numeric array or logical array of any size and dimension.

  • If I is a grayscale or RGB image, then it can be uint8, uint16, double, logical, single, or int16. The intensity values for input image of class single or double must be in the range [0, 1].


    If I is of class single or double with values outside the range [0, 1] then you can use rescale function to rescale values to the expected range.

  • If I is an indexed image, then it can be uint8, uint16, double or logical.


    It is not always possible to convert an indexed image to uint8. If the indexed image is of class double, then the maximum value must be 256 or less. If the indexed image is of class uint16, then the maximum value must be 255 or less.

  • If I is a binary image, then it must be logical.

Data Types: single | double | int16 | uint8 | uint16 | logical

Output Arguments

collapse all

Image with class uint8, returned as a numeric array of the same size as the input image I.

Data Types: uint8

Extended Capabilities

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Version History

Introduced before R2006a

expand all