Ответ 1
Догадаться. Если кто-то столкнется с этой проблемой:
im = cv2.imread(path,-1)
Установка флага в 0, для загрузки в градациях серого по умолчанию кажется 8-битной. Установка на -1 загружает изображение как есть.
Я пытаюсь прочитать 16-битное изображение в оттенках серого с использованием OpenCV 2.4 в Python, но, похоже, загружает его как 8 бит.
Я делаю:
im = cv2.imread(path,0)
print im
[[25 25 28 ..., 0 0 0]
[ 0 0 0 ..., 0 0 0]
[ 0 0 0 ..., 0 0 0]
...,
Как получить его как 16 бит?
Догадаться. Если кто-то столкнется с этой проблемой:
im = cv2.imread(path,-1)
Установка флага в 0, для загрузки в градациях серого по умолчанию кажется 8-битной. Установка на -1 загружает изображение как есть.
Чтобы улучшить читаемость, используйте флаг cv2.IMREAD_ANYDEPTH
image = cv2.imread( path, cv2.IMREAD_ANYDEPTH )
У меня была такая же проблема (16-разрядная загрузка .tif как 8-бит с использованием cv2.imread). Однако использование флага -1 не помогло. Вместо этого я смог загрузить 16-битные изображения, используя пакет tifffile.