我正在尝试在 Python 中使用 OpenCV 2.4 读取 16 位灰度图像,但它似乎将其加载为 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 )
我遇到了同样的问题(使用 cv2.imread 将 16 位 .tif 加载为 8 位)。但是,使用 -1 标志并没有帮助。相反,我能够使用 tifffile 包加载 16 位图像。