我想在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)
我期望里面有一些模糊线的圆形图像,但实际输出只是黑色图像。
答案 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")