OpenCV - 读取16位灰度图像

Kko*_*kov 17 python opencv

我正在尝试使用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]
..., 
Run Code Online (Sandbox Code Playgroud)

我怎么得到16位?

Kko*_*kov 25

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

im = cv2.imread(path,-1)
Run Code Online (Sandbox Code Playgroud)

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


Tho*_*mio 12

要提高可读性,请使用标志cv2.IMREAD_ANYDEPTH

image = cv2.imread( path, cv2.IMREAD_ANYDEPTH )
Run Code Online (Sandbox Code Playgroud)


小智 5

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

  • `tifffile`软件包运行良好。我没有尝试过为`cv2.imread`标志工作:`cv2.IMREAD_ANYDEPTH`,`cv2.IMREAD_ANYCOLOR`,这两个组合(`6`)和`-1`。 (2认同)