how to convert a double matrix image to a unit8 matrix ?

14 vues (au cours des 30 derniers jours)
Mariem Harmassi
Mariem Harmassi le 8 Mar 2013
Hi everybody :) I have an image ,a matrix with values between -0.0934 and 0 and i want to convert it to unit8 matrix with values between 0 ans 255.

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 8 Mar 2013
Modifié(e) : Azzi Abdelmalek le 8 Mar 2013
A=imread('yourimage')
B=uint8(A)
EDIT
d=linspace(min(im(:)),max(im(:)),256)
im1=uint8(arrayfun(@(x) find(abs(d(:)-x)==min(abs(d(:)-x))),im))
  4 commentaires
Mariem Harmassi
Mariem Harmassi le 8 Mar 2013
yes i tried uint8 it was just an error
Azzi Abdelmalek
Azzi Abdelmalek le 8 Mar 2013
Modifié(e) : Azzi Abdelmalek le 8 Mar 2013
Try this
%If im is your image
d=linspace(min(im(:)),max(im(:)),256)
im1=uint8(arrayfun(@(x) find(abs(d(:)-x)==min(abs(d(:)-x))),im))

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 8 Mar 2013
You can use the mat2gray() function:
image8Bit = uint8(255 * mat2gray(floatingPointImage));
It will scale your values to the range 0-255.
  10 commentaires
Juan Manuel Miguel
Juan Manuel Miguel le 6 Août 2020
Thank you, it was perfect for me!!
Bruno Aravena Pérez
Bruno Aravena Pérez le 29 Avr 2022
Thanks!

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by