3

我有一个 4 波段多通道图像 (TIF),它是一个无符号的 16 位图像。我正在使用以下内容:

    opencv2 
    python 

我在代码的开头做了以下事情

    import cv2 

当我使用

  i = cv2.imread('img.tif') 

它正在读取所有四个波段,但为 UINT8。当我使用

  i = cv2.imread('img.tif', cv2.CV_16U)

它只读取图像的一个通道。应该怎么做才能以 16 位无符号读取所有四个通道?

4

1 回答 1

2

尝试传递标志cv2.IMREAD_ANYDEPTH文档说明此标志将:

如果设置,则在输入具有相应深度时返回 16 位/32 位图像,否则将其转换为 8 位。

i = cv2.imread('img.tif', flags=cv2.IMREAD_ANYDEPTH)

如果这不起作用,请尝试使用cv2.IMREAD_UNCHANGED标志。它没有记录,但看起来它也可以工作。

于 2013-07-08T20:02:48.107 回答