I\'m trying to read a 16 bit grayscale image using OpenCV 2.4 in Python, but it seems to be loading it as 8 bit.
I\'m doing:
im = cv2.imread(path,0)
Figured it out. In case anyone else runs into this problem:
im = cv2.imread(path,-1)
Setting the flag to 0, to load as grayscale seems to default to 8 bit. Setting to -1 loads the image as is.
To improve readability use the flag cv2.IMREAD_ANYDEPTH
image = cv2.imread( path, cv2.IMREAD_ANYDEPTH )
I had the same issue (16-bit .tif loading as 8-bit using cv2.imread). However, using the -1 flag didn't help. Instead, I was able to load 16-bit images using the tifffile package.