I am importing images in python using OpenCV.
import cv2
img = cv2.imread(img, cv2.IMREAD_GRAYSCALE)
The image is a 16 bit .png or .tif, and is converted to 8 bit by cv2.IMREAD_GRAYSCALE (as expected). I am happy that OpenCV converts my image. I am aware that I can use cv2.IMREAD_UNCHANGED if I want a 16bit image.
I just want to know how OpenCV is converting my image from 16 to 8 bit. E.g. via typical normalisation, or in some other way that might saturate pixels? For my downstream problems it is more important that the general range is preserved.
I have checked the OpenCV documentation and cannot find an explanation for this. I cannot find a similar question.
EDIT: My images are single channel.
