我正在尝试使用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位?
答案 0 :(得分:20)
想出来。万一其他人遇到这个问题:
im = cv2.imread(path,-1)
将标志设置为0,以灰度加载似乎默认为8位。设置为-1会“按原样”加载图像。
答案 1 :(得分:8)
要提高可读性,请使用标记 cv2.IMREAD_ANYDEPTH
image = cv2.imread( path, cv2.IMREAD_ANYDEPTH )
答案 2 :(得分:4)
我有同样的问题(使用cv2.imread将16位.tif加载为8位)。但是,使用-1标志并没有帮助。相反,我能够使用tifffile包加载16位图像。