How to reduce grayscale levels ?

15 visualizaciones (últimos 30 días)
Mohab Mostafa
Mohab Mostafa el 27 de Abr. de 2015
Comentada: Image Analyst el 4 de En. de 2018
I have an RGB image, converted it into Grayscale image X = imread('lena.bmp'); Y = rgb2gray(X); now the image is represented by 8 bits (256 levels) and i want to quantize this image "Y" by reducing the grayscale levels to 32 (5 bits), how to do that ?
i know i can show the image like this imshow(Y,colormap(gray(32))); but that will just show the image with 32 levels and i want to save it in a variable not just showing it off

Respuesta aceptada

Image Analyst
Image Analyst el 27 de Abr. de 2015
Use imquantize() or just divide the image by 8.
Y32 = Y / 8;
  10 comentarios
soe
soe el 4 de En. de 2018
For image Y, to convert from 256 levels to 32 levels, the values should be 0 to 31. But Y/8 may be 0 to 32. (e.g. 255/8 = 31.875 becomes 32). So, how can i solve this problem?
Image Analyst
Image Analyst el 4 de En. de 2018
Use floor():
y8 = uint8(floor(double(y)/8))

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Modify Image Colors en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by