我在hdf5
文件中有一堆医学图像。
path_to_data = "data/train_large_axial_350_x_350.hdf5"
data = h5py.File(path_to_data,"r")
image_list = data["images"]
image = image_list[5]
如果我这样做
cv2.imwrite("maps/image.jpg", image)
我得到:
但是,如果我这样做
plt.imshow(image)
我得到:
这是什么原因?如何绘制图像,使其看起来像cv2.imwrite
产生的图像?
答案 0 :(得分:0)
这是因为matplotlib
在图像的灰度值范围内绘制图像。例如,如果您的图像包含介于21到88之间的灰度值,则matplotlib会将其绘制在此范围内,而不是在0到255之间。
可以通过以下方法解决此问题:
# from matplotlib import cm
plt.imshow(image, cmap=cm.gray, vmin=0, vmax=255)
要进行更深入的讨论,请查看this github问题。