29

我正在尝试在 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 位?

4

3 回答 3

41

弄清楚了。万一其他人遇到这个问题:

im = cv2.imread(path,-1)

将标志设置为 0,加载为灰度,似乎默认为 8 位。将标志设置为 -1 会按原样加载图像。

于 2012-06-10T16:50:19.780 回答
31

为了提高可读性,使用标志cv2.IMREAD_ANYDEPTH

image = cv2.imread( path, cv2.IMREAD_ANYDEPTH )
于 2017-10-03T14:30:37.340 回答
9

我遇到了同样的问题(使用 cv2.imread 将 16 位 .tif 加载为 8 位)。但是,使用 -1 标志并没有帮助。相反,我能够使用 tifffile 包加载 16 位图像。

于 2017-01-30T18:21:01.683 回答