【发布时间】:2012-06-13 17:41:31
【问题描述】:
我正在尝试在 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 位?
【问题讨论】:
我正在尝试在 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 位图像。
【讨论】:
tifffile 包运行良好。我没有尝试对cv2.imread 标志:cv2.IMREAD_ANYDEPTH、cv2.IMREAD_ANYCOLOR、这两个组合(6)以及-1。