如何在 OpenCV 中读取 .tif 图像

Kat*_* Wu 7 python opencv matplotlib

我想在 OpenCV Python 中加载并显示 .tif 图像。我使用 cv2.imread('1_00001.tif') 加载图像,然后使用 plt.imshow(img) 显示它,但显示的图像是全黑的,而不是原来的图像。

我可以使用 PIL 的 Image.open() 和 matplotlib 的 mpimg.imread() 正确加载和显示图像,所以我认为这是 cv2 特定的问题。但是,我还使用相同的 cv2.imread() 函数成功显示了 .jpg 和 .tiff 图像,因此该 .tif 图像也可能存在问题。

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('1_00001.tif')
plt.imshow(img)
Run Code Online (Sandbox Code Playgroud)

我期望得到一个内部有一些模糊线条的圆圈图像,但实际输出只是一个黑色图像。

ske*_*r88 2

检查您的图像像素值。plt.imshow剪辑从 0-255 的像素值,所以我猜测您正在输入值大于 255 的 PNG 图像,并且它们都被剪辑为 255(黑色)。通常,您需要在将 TIFF 或 PNG 图像输入到 之前对其进行标准化plt.imshow,因此有趣的是,您在某些 tiff 图像上没有看到此问题。