【问题标题】:OpenCV - Reading a 16 bit grayscale imageOpenCV - 读取 16 位灰度图像
【发布时间】: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


    【解决方案1】:

    想通了。万一其他人遇到这个问题:

    im = cv2.imread(path,-1)
    

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

    【讨论】:

      【解决方案2】:

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

      image = cv2.imread( path, cv2.IMREAD_ANYDEPTH )
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • tifffile 包运行良好。我没有尝试对cv2.imread 标志:cv2.IMREAD_ANYDEPTHcv2.IMREAD_ANYCOLOR、这两个组合(6)以及-1
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-13
        • 1970-01-01
        • 2015-06-29
        • 1970-01-01
        • 2020-05-15
        相关资源
        最近更新 更多