How 'imread' function works in Matlab?

16 Ansichten (letzte 30 Tage)
Mohammed Sadeq
Mohammed Sadeq am 21 Feb. 2017
Kommentiert: Mohammed Sadeq am 22 Feb. 2017
Hi,
I am using 'imread' function in Matlab to read images produced by X-Ray CT. Those images are in the greyscale.
When I use the 'imread' function, Matlab returns an array with the same size of the image but with numbers inside the cells (matrix is attached). The number represent a single pixel in that image while the minimum number is 3107 and the maximum is 40899.
I want to know how those numbers are calculated?
Thanks..

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 22 Feb. 2017
The png file you posted is 8 bits per channel, uint8, 3 channel, with a transparency (alpha) channel that is set to all 255 (uint8) which is completely opaque.
The .mat file you posted relates to a different image, and is a matrix of uint16 values.
Are you asking how the uint16 is represented inside the file? If so then the answer is that they are stored in http://stackoverflow.com/questions/2384111/png-file-format-endianness "Network Byte Order", more commonly known as "Big Endian". That is a byte order in which the most significant of the bytes occurs first and then the less significant. That is the opposite of the order used by the x86 architecture, but it is the same as the order reflected by dec2hex and sprintf() with '%x' format.
What do the values correspond to, what units are they? I would put it to you that the images have been extracted from DICOM files without the relevant headers. See http://www.idlcoyote.com/fileio_tips/hounsfield.html
  1 Kommentar
Mohammed Sadeq
Mohammed Sadeq am 22 Feb. 2017
Thanks for your complete answer. I will accept it.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Adam
Adam am 21 Feb. 2017
They aren't 'calculated', they are read in from the file as the name 'imread' and the help suggest.
  2 Kommentare
Mohammed Sadeq
Mohammed Sadeq am 22 Feb. 2017
Hi Adam,
If they are read from the image it means that they are calculated (or measured) somehow based on bits in each pixel. The numbers (3107 and 40899) came from somewhere. I want to know from where.
Thanks for your answer..
Adam
Adam am 22 Feb. 2017
imread literally reads what is stored in the file. How those numbers were calculated comes from whatever process was used to create the image and save it originally.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by