如何在OpenCV中读取.tif图像

时间:2019-07-18 20:13:38

标签: 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)

我期望里面有一些模糊线的圆形图像,但实际输出只是黑色图像。

2 个答案:

答案 0 :(得分:2)

检查图像像素值。 plt.imshow会将像素值从0-255剪切掉,所以我猜您正在馈入值大于255的PNG图像,并且它们都被剪切为255(黑色)。 Usually you'll want to normalize a TIFF or PNG image,然后再将它们喂入plt.imshow,因此有趣的是,您在某些tiff图像上没有看到此问题。

答案 1 :(得分:0)

我认为,某些tiff标签无法在openCV中正常使用 尝试

img=cv2.imread("YOURPATH/opencv/samples/data/lena.jpg",cv2.IMREAD_COLOR)
cv2.imwrite("1_00001.tif",img)
img1=cv2.imread("1_00001.tif")