cv2.IMREAD_ANYDEPTH 改变 .tiff 图像的形状

问题描述 投票:0回答:1

我想在原始位深度中使用 cv2 打开图像,并最终分割通道进行分析。使用 cv2.IMREAD_ANYDEPTH 标记可以工作,但会更改 im.shape。发生了什么事以及如何避免这种行为?这是在 Colab 中完成的。

import cv2

im = cv2.imread(image.tiff)

print(im.dtype)
print(im.shape)

im = cv2.imread(image.tiff, cv2.IMREAD_ANYDEPTH)

print(im.dtype)
print(im.shape)

输出:

uint8
(957, 641, 3)
uint16
(957, 641)

根据各种帖子,这不应该发生。仍然不确定为什么频道会丢失。

python-3.x opencv google-colaboratory imread uint16
1个回答
0
投票

似乎使用以下不同的标签可以完全避免这个问题。

im = cv2.imread(image_path, cv2.IMREAD_UNCHANGED)

这保留了 dtype 和形状。

© www.soinside.com 2019 - 2024. All rights reserved.