A
A
Artur Bekerov2014-01-25 10:28:34
Python
Artur Bekerov, 2014-01-25 10:28:34

What does a 16-bit signed integer image with VALID RANGE -100–16000 mean?

Greetings. I'm doing my ambitious thing.
I can't figure out what a 16-bit signed integer image with a VALID RANGE -100–16000 parameter means.
I have an image that I am reading in Python.
The output values ​​are:

Answer the question

In order to leave comments, you need to log in

3 answer(s)
R
radioxoma, 2014-01-25
@radioxoma

Continuing the theme. I have encountered, for the most part, medical images. From regular photos to multi-dimensional 3D stacks. I didn’t work much with GIS , you can start from here .
The image you provided is single channel. It can also be called gray (grayscale), halftone (grayscale). Each channel is just a matrix of points with different intensities. You yourself gave an example. To get a color image, three channels are required. See RGB. The photographs we are used to have three channels in the RGB color scheme, each of which contains data in uint8. A fourth channel (alpha channel) is added to provide transparency when images are overlaid on top of each other. Color spaces and their mathematical representation is quite an extensive topic, refer to the literature. You can start with RGB.
And now what you asked about.
uint16 represents 2 16 = 65536 (0...65535) possible image pixel values. int16 is the same, only it counts not from zero, but from -32768 to 32767.
uint8 represents 2 8 = 256 (0...255) possible values, by analogy. More convenient for image processingsigned int, since positive values ​​are natural: the camera matrix receives light of varying intensity (positive values) or no light (zero). This is how the photomatrix ADC is arranged . It turns out that uint16 allows you to store more (than uint8) data in one pixel (matrix cell). 65536/256 = 256 times more. The question arises: do you have data that requires such a range? And if so, what will you do with them? Of course, it is better to process with greater accuracy. But you still have to display in uint8 per channel. The monitor will not display all 16 bits, not all image formats support such depth, I have no idea how the browser will behave.
Summary: handle with maximum precision. Send pictures for the end user browser in eight-bit jpg (if artifacts are not scary) or png (if transparency or maximum data safety is needed).

R
radioxoma, 2014-01-25
@radioxoma

Refine your question. Signed short int , isn't it?
You have a two-dimensional array, each element of the array has a C-like (C-like) type. Unlike unsigned, each element can also be negative, although negative values ​​usually don't work for image processing.
Where do you get data from? X-rays?

S
Sergey Lerg, 2014-01-25
@Lerg

Depending on what kind of processing you are doing. If everything is reduced to 256 values ​​and this will be enough for you for the result, then do so.
If the accuracy is lost more than necessary, then convert to integer 16 bit numbers and work with such a bit depth.
I guess the -100..0 range doesn't make much physical sense? If it has, then it can be selected into a separate image, for example. Or take it stupidly with zeros, if they are not critical for processing at all.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question